SQL mit mehreren Joins

Kalito

Erfahrenes Mitglied
Hallo,

für eine Suche muss ich auf 5 Tabellen suchen. Dafür habe ich folgenden SQL-Code:

Code:
SELECT * FROM users 
INNER JOIN `groups_users` ON users.id = `groups_users`.`user_id`
INNER JOIN `projects_users` ON users.id = `projects_users`.`user_id`
INNER JOIN `trainings_users` ON users.id = `trainings_users`.`user_id`

Ich habe die where-Bedingung jetzt weggelassen, da es sich herausgestellt hat, das schon bei dieser Abfrage die User ausgelassen werden, die nicht in allen Tabellen enthalten sind. Ich brauche aber auch die User, die nur in projects_users auftauchen, aber nicht in trainings_users.


Gruß und schöne Ostern.

Kalito
 
Hallo,

okay und vielen Dank. Wenn ich jetzt aber meine Where-Bedingung mit einfüge, dann zeigt er mir aber trotzdem nur die an, die in alles Tabellen vertreten sind. Ich möchte aber nach wie vor diejenigen, die mind. eine Bedingung erfüllen, aber nicht umbedingt alle.
Code:
SELECT * FROM users 
LEFT OUTER JOIN `groups_users` ON users.id = `groups_users`.`user_id`
LEFT OUTER JOIN `projects_users` ON users.id = `projects_users`.`user_id`
LEFT OUTER JOIN `trainings_users` ON users.id = `trainings_users`.`user_id`
WHERE 
`project_id` LIKE '%%'
AND
`training_id` LIKE '%%'

Wenn ich das WHERE rausnehme, zeigt er mir alle an.
 
Dank dir, aber da kommt nun das Problem, das er mir trotzdem immer noch alle anzeigt. Sprich wenn ich in der Where-Bedingung nach einer Bestimmten ID filtere zeigt er mir trotzdem alle an, auch wenn sie nicht in dieser Gruppe sind. Wenn ich jetzt noch eine zweite Bedingung eingebe, dann soll er mir alle anzeigen die beide Bedingungen erfüllen
 
Zurück