簡體   English   中英

復雜的MySQL左聯接查詢

[英]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子句中。 你需要移動狀態中whereon

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM