2012-08-30 3 views
0

J'ai une table appelée meeting, et une appelée meeting_permissions. Ce dernier stocke ce que les utilisateurs ont pris part à une réunion donnée. J'ai aussi d'autres tables: note, discussion, conclusion et sujet, qui stockent des éléments spécifiques pour la transcription de cette réunion. Ce que je veux faire, c'est obtenir toutes les réunions auxquelles un utilisateur spécifique a participé, ainsi que toutes les notes, discussions, conclusions et sujets associés. Voici ce que je suis venu avec:Sélection à partir de plusieurs sous-tables

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 

Cela ne fonctionne pas pour moi. Il se brise sur la deuxième jointure à gauche. Que puis-je faire pour résoudre ce problème?

+0

REJOINT devrait être avant l'étaient - cela vous semble aussi pouvez le faire avec une requête –

Répondre

1

Vous REJOIGNEZ contre votre sous-sélection à la place de votre principale table de réunion:

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

Cela me donne l'erreur suivante: « Vous avez un erreur dans votre syntaxe SQL, consultez le manuel qui correspond à votre version du serveur MySQL pour la bonne syntaxe à utiliser près de '. *, note. *, sujet. * FROM réunion LEFT JOIN conclusion sur meeting.id = con' à la ligne 4 " – Fibericon

+0

Ne tenez pas compte de cela. C'était juste une virgule manquante. – Fibericon

+0

Désolé pour la virgule manquante, je fais des fautes de frappe :( – Parallelis

Questions connexes