我有一個客戶表和一個地址表。每個客戶在地址表中可以有多個條目,但只有其中一個條目可以標記爲「主要」。我已經把查詢拉起客戶和他們的主地址如下:mysql左連接多列where
SELECT * FROM customers LEFT JOIN addresses
ON customers.cust_id = addresses.cust_id
WHERE customers.status = 1 AND addresses.primary = 1
我發現一個缺陷中,如果客戶還沒有添加一個地址到他們的帳戶,他們不會因爲沒有「主要」地址而出現。
解決此問題的最佳方法是什麼?
輝煌。沒有意識到你可以在這樣的JOIN中使用AND。謝謝! – TH1981 2012-08-01 21:26:14
是的,你可以使用任何表達式;函數,甚至子查詢。但是,爲了獲得最佳性能,請堅持列對比和/或常量。上面的查詢將正常工作;可能更好或者與其他人提出的「OR」構建一樣好。不過,我覺得這種說法更清晰,更清晰,不太冗長。 – 2012-08-01 21:29:02