Heyho,
auf einer Website habe ich diverse Abstimmungen unter Benutzern. Ein Benutzer kann jeweils für einen anderen Benutzer abstimmen, dementsprechend gibt es drei Tabellen: Für den Benutzer, die Abstimmung, sowie die Stimme, welche die beiden Tabellen verbindet. In letzter findet man die ID der Abstimmung, des abstimmenden Benutzers sowie des Benutzers, für den abgestimmt wurde.
User: ID, Name, etc.
Voting: ID, Title, etc.
Vote: Voting, User, Vote
Jetzt will ich die Möglichkeit realisieren, alle Abstimmungen anzeigen zu lassen, nur die bereits beantworteten oder (am wichtigsten) die noch nicht beantworteten. Bei den beantworteten sollte auch der Name des ausgewählten Benutzers mit abgefragt werden.
Dabei scheitere ich jetzt ein wenig, weil ich ja scheinbar einen doppelten Join brauche und ihn wohl entweder zwingend (beantwortete anzeigen), optional (alle) oder ausschließend (noch nicht beantwortete) zu machen...
Das einfachste wäre wohl die für bereits beantwortete, dürfte ja ungefähr so aussehen (habe sie jetzt aus dem Kopf aufgeschrieben, weil die Datenbankstruktur geändert wurde):
SELECT votings.id, votings.title, users.name
FROM votings, votes, users
WHERE votings.id = votes.voting AND votes.users = '$id' AND votes.vote = users.id
ORDER BY votings.title
Aber bei den anderen beiden habe ich nicht wirklich ne Ahnung, wie ich das machen soll...