[英]Sql Query returns single row, but not all
我正在嘗試通過單個SQL查詢獲取記錄。 數據庫中有許多記錄,但它僅返回1行。
例如:它返回記錄號。 1.如果我刪除該記錄,則返回記錄號。 2.由於記錄很多。 我希望它顯示所有記錄。
這是我的查詢。
SELECT camp.title, camp.status, c.name, b.base_id, count(s.base_id) as subscribers
FROM campaigns as camp
JOIN company as c ON c.id = camp.company_id
JOIN campaign_numbers as b ON b.campaign_id = camp.id
JOIN base_numbers as s ON s.base_id = b.base_id
WHERE camp.campaign_date = '2017-04-07' AND camp.approved = 1
什么其實我是想我的查詢返回所有campaigns
的current date
是2017-04-07
和approved
狀態應該是1
,但我的查詢只返回單列,不是所有的廣告活動。
如果我這樣做,它將返回所有..
SELECT title, status
From Campaigns
WHERE campaign_date = '2017-04-07' AND approved = 1
但我也想顯示公司名稱,也想計算所有訂戶。 我在這里做錯了嗎?
您在SELECT
有一個聚合函數,沒有GROUP BY
。 在大多數數據庫中,這將返回錯誤。 在MySQL中,這是一個聚合查詢,總是返回一行。
大概您想要GROUP BY
:
GROUP BY camp.title, camp.status, c.name, b.base_id
嘗試如下
SELECT camp.title, camp.status, c.name, b.base_id, count(s.id) as subscribers
FROM campaigns as camp
Left JOIN company as c ON c.id = camp.company_id
Left JOIN campaign_numbers as b ON b.campaign_id = camp.id
Left JOIN base_numbers as s ON s.base_id = b.base_id
WHERE camp.campaign_date = '2017-04-07' AND camp.approved = 1
group by camp.title, camp.status, c.name, b.base_id
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.