2017-02-11 23 views
0

請讓我有四個表使用LEFT JOIN連接在一起,圖像表通過img_item鏈接到項目表,因此每個項目可以有更多圖像。我只想抓取每個項目的第一張圖片。我如何去實現這一點。左側極限值連接查詢部分

SELECT * FROM items 
LEFT JOIN category ON items.item_cat = category.cat_id 
LEFT JOIN users ON users.user_id=items.item_user 
LEFT JOIN institutions ON institutions.inst_id=users.user_inst 
LEFT JOIN images ON images.img_item = items.item_id 
ORDER BY item_id DESC 
+1

如何定義第一個..用min id或創建日期..這是第一個找到的標準嗎? – scaisEdge

+1

請參閱http://meta.stackoverflow.com/questions/333952/why-should-i-provide-an-mcve-for-what-seems-to-me-to-be-a-very-simple-sql-查詢 – Strawberry

回答

1

在MySQL中,您可以使用變量枚舉結果,然後選擇第一個。另一種選擇是確定你想要哪一個,並選擇那一個。以下選擇最大ID的圖像:

SELECT * 
FROM items LEFT JOIN 
    category 
    ON items.item_cat = category.cat_id LEFT JOIN 
    users 
    ON users.user_id=items.item_user LEFT JOIN 
    institutions 
    ON institutions.inst_id = users.user_inst LEFT JOIN 
    images 
    ON images.img_item = items.item_id AND 
     images.img_id = (SELECT MAX(i2.img_id) 
         FROM images i2 
         WHERE i2.img_item = images.img_item 
         ); 
ORDER BY item_id DESC 
+0

感謝大家對我的支持@Gordon的支持 – Optimistic