我需要找到所有有至少1個流通記錄的顧客。這是我目前擁有的,但它只能找到一個結果。我究竟做錯了什麼?表加入count()條件
SELECT *
FROM patrons
INNER JOIN circulations on circulations.patron_id = patrons.id
HAVING COUNT(circulations.id) > 0
我沒有給表的結構,因爲我想這是沒有必要的解決方案。如果需要的話,讓我知道,我會盡力將它添加到的問題
我需要找到所有有至少1個流通記錄的顧客。這是我目前擁有的,但它只能找到一個結果。我究竟做錯了什麼?表加入count()條件
SELECT *
FROM patrons
INNER JOIN circulations on circulations.patron_id = patrons.id
HAVING COUNT(circulations.id) > 0
我沒有給表的結構,因爲我想這是沒有必要的解決方案。如果需要的話,讓我知道,我會盡力將它添加到的問題
如何:
SELECT * FROM patrons
WHERE EXISTS (SELECT 1 FROM circulations
WHERE circulations.patron_id = patrons.id)
下面應該工作:
SELECT *
FROM patrons
INNER JOIN circulations on circulations.patron_id = patrons.id
GROUP BY patrons.id
這應該這樣做,但只有* *爲MySQL。其他數據庫* reaaaaaly *討厭這種構造。對於這些,你必須拼出組中的每個「patrons」列,或者在'patrons.id'上做一個子查詢,然後將*這個*連接到外部查詢中的'partrons'表。 +1無論如何... – SingleNegationElimination 2012-03-21 00:07:25
看看我的示例:
設想的贊助人名稱是您的贊助人桌上的專欄。
SELECT PatronName,COUNT(circulations.id) as CountCirculation
FROM patrons
INNER JOIN circulations on circulations.patron_id = patrons.id
group by PatronName
HAVING COUNT(circulations.id) > 0
問候
的Try ...
select *
from patrons p
left join circulation c on c.patron_id = p.id
where not c.patron_id is null
我喜歡這個,因爲它不會分組顧客。有沒有辦法找到同一查詢中每個贊助人有多少流通記錄? – LordZardeck 2012-03-21 00:10:33
當然,但這是一個不同的問題,所以問另一個問題;這也是一個很好的問題,並且有一些很好的答案,所以不要去改變它。 – SingleNegationElimination 2012-03-21 00:11:54