Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/xamarin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 升级sql查询联接_Mysql_Sql - Fatal编程技术网

Mysql 升级sql查询联接

Mysql 升级sql查询联接,mysql,sql,Mysql,Sql,我有一个疑问: SELECT e.id AS event_id, e.title, e.date, e.category, e.place, p.id, p.name, p.coor, p.nz, a.user, a.event, COUNT(a.user) AS attending FROM events AS e LEFT JOIN attendance a ON a.event = e.id LEFT JOIN plac

我有一个疑问:

   SELECT e.id AS event_id, e.title, e.date, e.category, e.place,
          p.id, p.name, p.coor, p.nz,
          a.user, a.event, COUNT(a.user) AS attending
     FROM events AS e
LEFT JOIN attendance a
       ON a.event = e.id
LEFT JOIN places p
       ON p.id = e.place
 GROUP BY e.id, e.title
 ORDER BY attending DESC
此查询从事件表中获取事件,并连接其他一些表。。。如果你能帮我提高效率,我会感谢你的

我还有一张桌子叫:邀请的朋友:

event_id    bigint(20)    
user_id int(11)   
owner   tinyint(1)
它存储邀请参加认证活动的用户ID。。如果用户是事件的创建者,则所有者是存储的bool


我只想根据“已邀请的朋友”表中的数据选择当前用户是否被邀请。

我对MySql不太熟悉,但下面是:

SELECT e.id AS event_id, e.title, e.date, e.category, e.place,
      p.id, p.name, p.coor, p.nz,
      a.user, a.event, COUNT(a.user) AS 
FROM 
    events AS e
    LEFT JOIN attendance a ON a.event = e.id
    LEFT JOIN places p ON p.id = e.place
WHERE 
    e.Category <> 4 
OR  EXISTS (SELECT
                NULL
            FROM
                invited_friends
            WHERE
                invited_friends.event_id = e.id
            AND invited_friends.user_id = @username -- User to search for
            )
GROUP BY 
    e.id,
    e.title
ORDER BY 
    attending DESC

内部加入,它工作,但不是所有我的活动都邀请了用户,其中一些是公开给每个人。。。所以它会忽略它们:codeINNER加入i.event\u id=e.id和i.user\u id=1439375286 code你怎么知道哪些活动是公开的?它存储在哪里?如果e.category=4,那么它是一个私人事件,当我使用像我展示的那样的内部连接时,它只会忽略邀请朋友的事件之外的所有事件。我修改了下面的答案,以适应该类别。如果类别不等于4,那么我假设它是公共的,应该包括在内,否则请确保@username已被邀请