[英]MySQL nested Select statement with subquery
我正在努力進行2小時的數據庫查詢。 數據庫結構如下:文章表
+---------------+-------------+
| id | ordernumber |
+---------------+-------------+
| 1 | 3243 |
| 2 | 3344 |
| 3 | 3423 |
| 4 | 7687 |
+---------------+-------------+
變型表
+----+-----------+-------+-------+
| id | articleId | stock | price |
+----+-----------+-------+-------+
| 1 | 1 | 3 | 10,99 |
| 2 | 1 | 0 | 10,99 |
| 3 | 1 | 1 | 10,99 |
| 4 | 2 | 0 | 11,99 |
| 5 | 2 | 0 | 11,99 |
| 6 | 2 | 1 | 11,99 |
+----+-----------+-------+-------+
我想獲得所有文章,其中除一個變體外所有其他都具有0庫存。 使用普通的sql語句甚至可能嗎? 我嘗試了一個子查詢,但是沒有成功,因為該子查詢首先執行,並且我需要傳遞外部查詢結果集的當前記錄中的值。
任何幫助深表感謝。
編輯:預期結果:
+----+-------------+
| id | ordernumber |
+----+-------------+
| 2 | 3344 |
+----+-------------+
可以使用group by
和having
來完成。
select articleID
from variants
group by articleID
having count(*) - 1 = count(case when stock = 0 then 1 end)
如果您需要有關變體的完整信息,請執行以下操作:
select v.*
from variants v
where v.stock > 0 and
not exists (select 1
from variants v2
where v2.articleID = v.articleID and
v2.stock > 0 and
v2.id <> v.id
);
注意:這假定重復的“ 5”是錯字,並且id在表中確實是唯一的。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.