gpt4 book ai didi

mysql - SQL INNER JOIN 修复

转载 作者:太空宇宙 更新时间:2023-11-03 11:09:37 24 4
gpt4 key购买 nike

我写了这条sql语句:

SELECT 
e.id AS event_id, e.title, e.date, e.category, e.place, e.minAge, e.maxAge,
p.id, p.name, p.coor, p.nz,
a.user, a.event, COUNT(a.user) AS attending,
i.user_id, i.event_id
FROM events AS e
LEFT JOIN attendance a ON a.event = e.id
LEFT JOIN places p ON p.id = e.place
LEFT JOIN invited_friends i ON ( i.event_id = e.id ) AND ( i.user_id = 0 )
GROUP BY e.id
ORDER BY attending DESC

此语句从表事件中选择事件并连接一些表。到目前为止一切都很好。我还有另一个表:invited_friends

event_id    bigint(20)    
user_id int(11)
owner tinyint(1)

此表存储受邀参加事件的用户 ID。

问题是不是每个事件都是私有(private)事件,也不是每个事件都邀请 friend ...我可以判断事件是否私有(private)的方式是事件表中的列:类别 , 如果它 = 4 那么它是一个私有(private)事件。

我的 inner join 有效,但它忽略了所有公共(public)事件,因为它们没有受邀的 friend 。

我该如何解决?

提前致谢。

最佳答案

...
FROM events AS e
LEFT JOIN attendance a ON a.event = e.id
LEFT JOIN places p ON p.id = e.place
LEFT JOIN invited_friends i ON ( i.event_id = e.id ) AND ( i.user_id = 0 )

WHERE category != 4 or i.event_id is not null

...

关于mysql - SQL INNER JOIN 修复,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9489747/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com