2012-08-30 51 views
0

我有一張名爲meeting的表,一個名爲meeting_permissions。後者存儲用戶參加任何特定會議的內容。我還有其他表格:註釋,討論,結論和主題,存儲會議記錄的具體項目。我想要做的是獲取特定用戶參加的所有會議,以及所有相關的註釋,討論,結論和主題。這是我想出的:從多個子表中選擇

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 

這對我不起作用。它在第二次左連接斷開。我能做些什麼來解決這個問題?

+0

JOINS應該是人前 - 也這似乎可以用一個查詢 –

回答

1

你加入對你的子選擇,而不是你的主要會議桌:

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) 
+0

做到這一點這使我有以下錯誤:「你有一個在你的SQL語法錯誤;檢查對應於你的MySQL服務器版本的手冊,以便在'。*,note。*,topic。*附近使用正確的語法* FROM meeting LEFT JOIN結論ON meeting.id = con'at line 4「 – Fibericon

+0

無視這一點。這只是一個失蹤的逗號。 – Fibericon

+0

抱歉失蹤的逗號,我做錯別字:( – Parallelis