我有一個數據庫有兩個表:users
,users_addresses
和countries
。MySQL返回記錄左連接表沒有記錄
當我選擇的用戶記錄,並將其綁定到模型中,我使用下面的語句:
SELECT
`u`.`id`, `u`.`first_name`, `u`.`last_name`,
`a`.`address_1`, `a`.`address_2`,
`a`.`town`, `a`.`region`, `a`.`post_code`, `a`.`country`,
`c`.`name` AS `country_name`,
`c`.`eu` AS `eu_member`
FROM `users` `u`
LEFT JOIN `users_addresses` `a`
ON `a`.`user` = `u`.`id`
LEFT JOIN `countries` `c`
ON `c`.`id` = `a`.`country`
WHERE `a`.`default` = 1
AND `u`.`id` = 3
我遇到的問題是,如果表users_addresses
不包含相應的記錄用戶然後我得到一個空的結果。如果有記錄 - 它應該只返回一個標記爲default
= 1的記錄,但顯然最好確保它總是隻返回一個以防萬一,因爲任何原因,一個用戶將有多個地址標記爲默認值。
所以我的問題是 - 我怎麼能確保即使在users_addresses
表中沒有相應的記錄,我仍然至少會得到用戶記錄以及如何確保查詢總是隻匹配一個地址記錄。
任何幫助將非常感激。
移動狀態到'ON'條款:'ON a.user = u.id AND a.default = 1' –