不确定如何说出我的问题,对不起,如果它有点令人困惑。希望以下内容能够清除它。
这是我到目前为止运行的查询:
select business.name, ifnull(sum(checkin.count),0) as checknum from checkin inner join business on business.id = checkin.business_id where business.state = 'NY' group by business.name order by checknum desc;
并且几乎按预期工作。在纽约有另外一家公司,在登记表中没有任何计数,但我无法将其输出。
这是我目前的输出:
+---------------------------------------+----------+
| name | checknum |
+---------------------------------------+----------+
| Lakeside Coffee | 31 |
| McDonalds | 18 |
| Valero | 15 |
| Angelo's Pizza & Grill | 13 |
| Gino's Pizza | 8 |
| Sandy's Deli | 7 |
| Tribeca North Luxury Apartments Homes | 2 |
| Matt & Nat | 2 |
| Filion's Diner | 2 |
| Squirrel's Nest Restaurant and Bar | 2 |
| Best Friends Family Diner | 1 |
| China Buffet | 1 |
| Sandi's Kountry Kitchen | 1 |
| Dick's Country Store | 1 |
+---------------------------------------+----------+
但我需要抓住没有任何签到的最后一项业务。不知道如何进一步解决这个问题。
答案 0 :(得分:1)
您需要使用right join
代替inner join
。
左连接将返回关系右侧的所有行,无论左侧是否有任何键匹配。