Ich habe ein einfaches Datenbankschema von 3 TabellenUnion-Abfrage verwandelt Abfrage
Benutzer
id
Name
matricule
Dokument
id
serielle
zusammengesetzt beitreten user_id (Besitzer des Dokuments: Fremdschlüssel für Benutzer (id))
User_Document (Join-Tabelle)
user_id
Ich möchte alle Dokumente Serien von beiden Benutzerquellen: Inhaber des Dokuments und Join-Tabelle. Die Abfrage wird durch eine Liste des Benutzers gefiltert Häftling
ich das gewünschte Ziel mit Union-Abfrage zu erreichen verwaltet:
select d.serial from Document d
INNER JOIN users u ON u.id = d.user_id
where u.matricule IN ('1234')
UNION
select d.serial from Document d
inner join User_Document ud on d.id = ud.document_id
inner join users u on ud.user_id = u.id
where u.matricule IN ('1234')
Wie mit nur einer Join-Abfrage zu dem gleichen Ergebnis kommen? Ich brauche überspringen und Dokument ohne serielle (dieser Fall möglich ist)
Vielen Dank
Danke, es funktioniert gut! – ulquiorra
Interessant. Diese Abfrage kann Duplikate zurückgeben, wie es jetzt geschrieben ist, während Ihre Version dies nicht tut. –