Saya memiliki 2 tabel dengan struktur serupa dengan ini:
tabel: pengguna
field: id, active_office_address_id (bisa 0)
tabel: alamat_pengguna
bidang: id, user_id, ketik (rumah, kantor)
Seorang pengguna dapat memiliki alamat "rumah" (tidak wajib) dan beberapa alamat "kantor". Saya bergabung untuk mendapatkan alamat pengguna, tetapi saya ingin jika pengguna memiliki alamat "rumah" untuk mendapatkan alamat itu, bukan alamat "kantor".
Jadi, bagaimana saya bisa mendapatkan alamat "rumah" jika ada, dan hanya jika alamat itu tidak ada untuk mendapatkan alamat "kantor". (Pada kenyataannya, kuerinya jauh lebih rumit dan penggabungan dilakukan pada 4-5 tabel)
SELECT * FROM user LEFT JOIN user_address ON (user.id = address.user_id AND
(user_address.type = "home" OR user.active_office_address_id = user_address.id))
group by user.id