的記錄數我在MySQL數據庫3個表:訂單,項目和item_to_orders。最後一個表item_to_orders通過item_id和order_id索引將訂單和商品關聯起來。SQL查詢來獲取結果基於其他表
訂單:
order_id order_name order_status
1 Test 0
2 Test2 1
項目:
item_id item_name
1 item1
2 item2
item_to_order
order_id item_id
1 1
2 2
,我需要選擇一個item_id from items表,即無訂單order_status = 0分配給它item_to_order表。它可以有任何其他訂單(其中order_status!= 0)分配給它或根本沒有訂單。我試圖使用這個查詢,但它似乎並沒有給我所有正確的結果(我添加了LIMIT,因爲我只需要這種類型的項目)。
SELECT ei.item_id from items ei
LEFT JOIN items_to_orders eio ON ei.item_id=eio.item_id
WHERE NOT EXISTS
(select * from orders o where o.order_id = eio.order_id and o.order_status=0)
ORDER BY ei.item_id LIMIT 1
所以,你只想選擇一個項目,只有當*不存在*某種類型的訂單。你嘗試了什麼?你在哪裏失敗? –
你最終的結果是什麼? –
在我的例子中,我的最終結果應該是item_id,它的名字沒有order_status = 0的訂單 - 所以在這種情況下,我希望結果是2(滿足該要求的item_id) – Viceromag