Abfrage über 3 Tabellen, Hilfestellung

matzseesi

Erfahrenes Mitglied
Hi Leute,

Ich bin nicht besonders fit wenn es darum geht mit Mysql eine Abfrage über mehrere Tabellen zu machen. Da ich dies aber benötige und mir dies auch einiges an Arbeit abnehmen würde möchte ich dies nun mal probieren!

Ich habe 3 Tabellen:
Tabelle alben:
albumid => primary Key
name => text
date => datetime

Tabelle albumright:
rightid => primary Key
albumid => int
groupid => int

Tabelle group:
groupid => primary Key
groupweight => int

Jetzt soll folgendes gemacht werden:
Ich hätte gerne eine Ausgabe aller Alben, welche einen Eintrag in der Tabelle rightid haben, ausgelesen und zwar nur jene, mit einer groupweight <= 0.

Ist sowas überhaupt möglich?
Wäre es machbar wenn ihr mir da ein wenig unter die Arme greifen könntet?
wenn ich eine solche abfrage habe kann ich damit ein wenig rumspielen und mir das ganze aneignen!

Gruß Matz
 
mal auf die schnelle:

SQL:
select * 
from alben, albenright
where alben.albumid = albenright.albumid
AND groupid in (
 select groupid from group where groupweight <= 0
)
 
Hi

Vielen Dank für die schnelle Antwort
Habe jetzt das ganze mal so drinnen!

Stimmt das wie ich die Quotes mache?
Wie muss ich pictures_album.albumid quoten

SQL:
SELECT * FROM `pictures_album`, `acl_pictures` 
WHERE pictures_album.albumid = acl_pictures.albumid 
AND `groupid` IN (SELECT `groupid` FROM `group_data` WHERE `groupweight`<='0') 
ORDER BY `date` ASC 
LIMIT 0 ,7;

Gruß Matz
 
Zuletzt bearbeitet von einem Moderator:
Ich bin ein Verfechter der Regel "Keine Quotes, solange man sie nicht braucht" :)

Soll heißen, ich würde da überall bei den Spaltennamen die Quotes weglassen.
Da keiner deiner Spaltennamen ein reserviertes Wort ist, müsste das auch ohne funktionieren.
 
Aber je weniger Quotes man macht um so mehr muss die Datenbank arbeiten um sich den Query String verarbeitbar herzurichten nicht?
Oder ist der Zeitaufwand der DB vernachlässigbar?

Hätte da noch einmal eine Frage!

Wie kann ich nun prüfen ob ein Album mit einer Albumid bsp: 1 einen eintrag in der group tabelle besitzt mit groupweight<=0.

Ich kann es mir einfach nicht zusammenreimen!

Im Prinzip muss ich zuerst nachschauen ob das besagte Album einen Eintrag in der Tabelle albumright besitzt! Wenn ja diesen selektieren und mit der selektierten groupid dann abfragen ob die groupweight <= 0 ist. Nur wie wird das umgesetzt

Gruß Matz
 
Zuletzt bearbeitet:
Indem du das einfügst?

SQL:
SELECT * 
FROM `pictures_album`, `acl_pictures` 
WHERE pictures_album.albumid = acl_pictures.albumid 
AND `groupid` IN (SELECT `groupid` FROM `group_data` WHERE `groupweight`<='0') 


AND pictures_album.albumid = '1'


ORDER BY `date` ASC LIMIT 0 ,7;
 
Vielen Dank!

Funktioniert bestens! Ich werde jetzt ein wenig damit spielen und mich hier wieder melden falls ich noch wo probleme habe!

Gruß Matz
 

Neue Beiträge

Zurück