尝试使用子查询从另一个表中获取行数

时间:2015-05-18 00:05:12

标签: mysql sql

我试图将来自另一个表的子查询结果替换为此查询作为列结果,每一行都获得完整的表计数,不知道如何才能使其工作,请指教。

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 

1 个答案:

答案 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