私はジョインに依存して巨大なMySQLのクエリを持っています。MySQLクエリをより簡潔にするにはどうすればよいですか?
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
各サブステートメントの最初の3行は、UNIONで分割されています。どのようにDRYの原則を守り、3つの行を繰り返さずに、このクエリをより簡潔にすることができますか?このように
* re:* 'LEFT JOIN users AS u u ON(u.id = m.user1ID) WHERE m.user2ID = 2' - 実際のSQLはuser1IDとuser2IDを実際に比較していますか? – Leigh