簡體   English   中英

SQL查詢返回單行,但不是全部

[英]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

什么其實我是想我的查詢返回所有campaignscurrent date2017-04-07approved狀態應該是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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM