2015-05-24 47 views
-1

我有一個包含發票號,產品編號,產品類別,數量銷售表等MySQL的行,其中數(X)> 1和count(Y)> 0

使用此表,你會怎樣查找包含來自說A類和來自B類的至少一種產品的發票?

+0

你真的需要提供更多的細節,如表結構和樣本數據。 –

+0

我不太清楚表格關係,但怎麼樣?...... WHERE EXISTS(... category ='A')AND EXISTS(... category ='B')...「? – sfrutig

回答

0

好的,這是我相信的就是你想要的。高興地看到,任何簡單的建議,如果任何人有他們:

Select tableA.invoiceNumber 
from 
(select * from myTable 
where productCategory = 'A') tableA 
inner join 
(select * from myTable 
where productCategory = 'B') tableB 
on tableA.invoiceNumber = tableB.invoiceNumber 

這裏有一個SQLFiddle:

http://sqlfiddle.com/#!9/03ddd/3

它基本上加入您的查詢到自己那裏有對類別中的每個表的條件。

+0

產品類別字段將包含「A類」或「B類」等值,因此我在查找包含產品類別字段中至少包含「類別A」的一行和至少包含「類別B」的一行的invoiceNumber '在產品類別領域..有幫助嗎? – mrsmith

+0

啊,這有點不同,給我一分鐘,我會編輯我的答案。桌子上有主鍵嗎? – Reisclef

+0

是的主鍵(id) – mrsmith

0

試試這個:

select * from mytable 
inner join(
select invoiceNumber 
from mytable 
where mytable.productcategory = 'A' 
) as a using (invoiceNumber) 
inner join(
select invoiceNumber 
from mytable 
where mytable.productcategory = 'B') as b 
using (invoiceNumber) 
group by invoicenumber 
+0

我認爲這將返回任何類別A或B的發票。 – Tim3880

+0

@ Tim3880剛剛更新了我的答案。它包含至少1個類別A和1個類別B的退貨發票。 – RubahMalam

+1

謝謝,它對我來說很好。我只是環顧四周,學習。 – Tim3880

相關問題