2013-12-17 74 views
0

我試圖找到以下問題MySQL查詢:不尋常的SQL查詢

多少文章被只有一個 supllier

  • 的文章中提供的表artikel
  • 供應商資料中的表leverancier
  • 表連接他們的是inkart

enter image description here

我走到這一步,查詢是:

SELECT 
    COUNT(artikel.art) 
FROM 
    artikel 
     JOIN 
    inkart ON artikel.art = inkart.art 
     JOIN 
    leverancier ON inkart.lev = leverancier.lev 
GROUP BY artikel.art 
HAVING COUNT(leverancier.lev) = 1 

但是,這是給我的錯(無)結果。我想我必須在某個地方使用子查詢,但我不知道如何。

回答

1

你只需要算獨特leverancier.lev,這會給artikel.art

SELECT artikel.art 
FROM artikel 
     JOIN inkart ON artikel.art = inkart.art 
     JOIN leverancier ON inkart.lev = leverancier.lev 
GROUP BY artikel.art 
HAVING COUNT(DISTINCT leverancier.lev) = 1 

列表,如果你想要的物品計數,

SELECT COUNT(*) 
FROM 
(
    SELECT artikel.art 
    FROM artikel 
      JOIN inkart ON artikel.art = inkart.art 
      JOIN leverancier ON inkart.lev = leverancier.lev 
    GROUP BY artikel.art 
    HAVING COUNT(DISTINCT leverancier.lev) = 1 
) a 
1
select count(artikel.art) 
from artikel 
where 1= (select count(*) from inkart 
      join leverancier on inkart.lev=leverancier.lev 
      where inkart.art=artikel.art 
     )