我试图将来自另一个表的子查询结果替换为此查询作为列结果,每一行都获得完整的表计数,不知道如何才能使其工作,请指教。
SELECT id, name, description, (SELECT count(*) FROM day WHERE event_id = 1) AS days
FROM event
我的sql小提琴位于此地址。
http://sqlfiddle.com/#!9/54697
我需要这样的输出。
id name days
1 'event 1' 3
2 'event 2' 0
答案 0 :(得分:1)
我想你想要每个活动的天数。如果是这样,您需要一个相关的子查询:
SELECT e.id, e.name, e.description,
(SELECT count(*) FROM day d WHERE d.event_id = e.id) AS days
FROM event e;
在我看来,day
是一个糟糕的名称,用于存储每个事件安排的日期。我希望一个名为day
的表可以获得有关天数的信息,而不是事件。您可以考虑将其重命名为EventDays
。