Php 从多个子表中选择
我有一张名为meeting的桌子,还有一张名为meeting\u permissions的桌子。后者存储用户参加任何给定会议的内容。我还有其他表格:备注、讨论、结论和主题,它们存储了会议记录的特定项目。我想做的是获取特定用户参加的所有会议,以及所有相关的笔记、讨论、结论和主题。以下是我的想法:Php 从多个子表中选择,php,mysql,select,join,Php,Mysql,Select,Join,我有一张名为meeting的桌子,还有一张名为meeting\u permissions的桌子。后者存储用户参加任何给定会议的内容。我还有其他表格:备注、讨论、结论和主题,它们存储了会议记录的特定项目。我想做的是获取特定用户参加的所有会议,以及所有相关的笔记、讨论、结论和主题。以下是我的想法: SELECT * FROM meeting WHERE id IN (SELECT meeting_id FROM meeting_permissions WHERE user_id = $user)
SELECT * FROM meeting WHERE id IN
(SELECT meeting_id FROM meeting_permissions WHERE user_id = $user)
LEFT JOIN conclusion ON meeting.id = conclusion.meeting_id
LEFT JOIN discussion ON meeting.id = discussion.meeting_id
LEFT JOIN note ON meeting.id = note.meeting_id
LEFT JOIN topic ON meeting.id = topic.meeting_id
那对我不起作用。它在第二个左连接处断开。我能做些什么来解决这个问题?您可以根据您的子选择而不是主会议桌加入:
SELECT
meeting.*,
conclusion.*
discussion.*,
note.*,
topic.*
FROM meeting
LEFT JOIN conclusion ON meeting.id = conclusion.meeting_id
LEFT JOIN discussion ON meeting.id = discussion.meeting_id
LEFT JOIN note ON meeting.id = note.meeting_id
LEFT JOIN topic ON meeting.id = topic.meeting_id
WHERE meeting.id IN
(SELECT mp.meeting_id FROM meeting_permissions mp WHERE mp.user_id = $user)
连接应该在WARE之前-这似乎可以通过一个查询实现这一点这给了我以下错误:“您的SQL语法有错误;请查看与您的MySQL服务器版本相对应的手册,以了解在“.”附近使用的正确语法,注意。*,主题。*第4行的meeting.id=con“上的meeting LEFT JOIN conclusion”别理它。只是少了一个逗号。很抱歉少了一个逗号,我有打字错误:(