我有一个客户表和一个地址表。每个客户在地址表中可以有多个条目,但只有其中一个条目可以标记为“主要”。我已经把查询拉起客户和他们的主地址如下: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