[英]Complex MySQL left join query
我正在嘗試編寫更復雜/更好的mysql語句,但是我在使用邏輯創建該語句時遇到了一些麻煩,但不確定如何去做。 任何幫助表示贊賞!
基本上,我的目標聲明是從產品表中選擇全部,然后為每個產品加入一個顯示= 1的圖像
"SELECT p
FROM CurbbedUserBundle:Product p
LEFT JOIN CurbbedUserBundle:ProductImages i
ON p.id = i.id
WHERE i.display = 1
ORDER BY p.name ASC"
感謝您的任何幫助!
如果要left join
,則第二個表上的所有條件都應在on
子句中。 你需要移動狀態中where
在on
:
SELECT p
FROM CurbbedUserBundle:Product p LEFT JOIN
CurbbedUserBundle:ProductImages i
ON p.id = i.id AND i.display = 1
ORDER BY p.name ASC
編輯:
左連接的規則是,無論on
條件是否為真,它都會將所有行保留在第一個表中。 因此,如果要按第一個表進行過濾,請將條件放在where
子句中。 它不會做的事情on
。 right join
的規則恰恰相反。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.