计算ID在表中出现的次数并按行返回
SELECT
Boats.id, Boats.date, Boats.section, Boats.raft,
river_company.company, river_section.section AS river
FROM Boats
INNER JOIN river_company ON Boats.raft = river_company.id
INNER JOIN river_section ON Boats.section = river_section.id
ORDER BY Boats.date DESC, river, river_company.company
返回我需要的一切。但是我如何添加 [Photos] 表并计算 Boats.id 在其中出现的次数并将其添加到返回的行中。
因此,如果 17 号船有 5 张照片,我希望 17 号船的记录为 PhotoCount = 5
SELECT
Boats.id, Boats.date, Boats.section, Boats.raft,
river_company.company, river_section.section AS river
FROM Boats
INNER JOIN river_company ON Boats.raft = river_company.id
INNER JOIN river_section ON Boats.section = river_section.id
ORDER BY Boats.date DESC, river, river_company.company
Returns everything I need. But how would I add a [Photos] table and count how many times Boats.id occurs in it and add that to the returned rows.
So if there are 5 photos for boat #17 I want the record for boat #17 to say PhotoCount = 5
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(7)
您可以将
LEFT JOIN
添加到子查询,如下所示:然后在
SELECT
字段中引用sub_photos.num
。它看起来像这样:
You could add a
LEFT JOIN
to a sub query as follows:And then reference
sub_photos.num
in yourSELECT
fields.It would look something like this:
我认为boatsId 是照片表中的一列?最简单的方法是使用子选择:
I presume boatsId is a column in the Photos table? The easiest way would be with a subselect:
尝试一下这个。
Give this one a try.
另一种方式:
Another way:
您尚未提供有关照片表结构的任何信息,但类似的内容应该适合您。
You haven't provide any information regarding the structure of the Photos table but something like this should work for you.
另一种方式
Another way
Select YourID, COUNT(*) FROM YourTable GROUP BY YourID
当我尝试根据 ID 或任何其他列查找记录计数可能不同的位置时,此方法效果很好。
Select YourID, COUNT(*) FROM YourTable GROUP BY YourID
This works just fine for when I'm trying to track down where record count might be different based on an ID or any other column.