Ich habe eine riesige MySQL-Abfrage, die von JOINs abhängt.Wie mache ich meine MySQL-Abfrage mit Joins prägnanter?
SELECT m.id, l.name as location, CONCAT(u.firstName, " ", u.lastName) AS matchee, u.email AS mEmail, u.description AS description, m.time AS meetingTime
FROM matches AS m
LEFT JOIN locations AS l ON locationID=l.id
LEFT JOIN users AS u ON (u.id=m.user1ID)
WHERE m.user2ID=2
UNION
SELECT m.id, l.name as location, CONCAT(u.firstName, " ", u.lastName) AS matchee, u.email AS mEmail, u.description AS description, m.time AS meetingTime
FROM matches AS m
LEFT JOIN locations AS l ON locationID=l.id
LEFT JOIN users AS u ON (u.id=m.user2ID)
WHERE m.user1ID=2
Die ersten 3 Zeilen jeder Unteranweisung geteilt durch UNION sind identisch. Wie kann ich mich an das DRY-Prinzip halten, diese drei Zeilen nicht wiederholen und diese Abfrage prägnanter gestalten?
* re: * 'LINKE JOIN Benutzer AS u ON (u.id = m.user1ID) WHERE m.user2ID = 2' - Ist die tatsächliche sql wirklich Benutzer1ID gegen Benutzer2ID zu vergleichen, oder ist das nur ein Tippfehler? – Leigh