表 「規劃」凡亞子查詢的MySQL
id name 1 abc 2 def 3 ghi
表 「時間表」
id fk_store fk_plan 1 4 1 2 4 1 3 4 1 4 6 1 5 6 1 6 5 3 7 7 3 8 7 3 9 12 1
這是我的查詢:
SELECT plan.id as id, name,
(SELECT GROUP_CONCAT(cnt) cnt FROM (SELECT COUNT(*) cnt
FROM schedule WHERE fk_plan = plan.id GROUP BY fk_store) q) as schedule_count
FROM plan LEFT JOIN schedule ON plan.id = schedule.fk_plan GROUP BY plan.id
我期待這樣的結果(例如,在陣列):
[0] = array(
['id'] = 1,
['name'] = 'abc',
['schedule_count'] = '3, 2, 1'
),
[1] = array(
['id'] = 2,
['name'] = 'def',
['schedule_count'] = ''
),
[2] = array(
['id'] = 3,
['name'] = 'ghi',
['schedule_count'] = '2,1'
),
不幸的是我得到的誤差,在WHERE子句是未定義的列plan.id。當我不使用WHERE結果'schedule_count'是'3,2,2,1,1'在每個數組中。我發現了許多類似的解決方案,但我無法修復它。
我希望我的問題很清楚。先謝謝你。
plan.id其實並不存在,你調用它,因爲它會如果你使用的是連接(我不能告訴是否有可能在您的情況) –
@Bartdude是現在我知道它不存在。但一切都是可能的,所以我期望這有一個解決方案 – mesnicka