Как мне сделать 2 уникальных Левых соединения на одной ячейке таблицы? - PullRequest
1 голос
/ 31 августа 2010

В mysql я хотел бы сделать 2 уникальных ЛЕВЫХ СОЕДИНЕНИЯ для одной и той же ячейки таблицы.

У меня две таблицы.

В одной таблице перечислены отдельные клиенты и есть запись clientNoteID и staffNoteIDдля каждого клиента.clientNoteID и staffNoteID являются целочисленными ссылками уникального noteID для хранилища заметок в notesTable.

clientsTable:

clientID | clientName | clientNoteID | staffNoteID

notesTable:

noteID | note

Я бы хотел иметь возможность выбрать из заметки таблицы как заметку, на которую ссылается clientNoteID, так и заметку, на которую ссылается staffNoteID.

Не вижу никакого способадля псевдонима левого соединения, например:

SELECT FROM clientsTable clientsTable.clientID, clientsTable.clientName, clientsTable.clientNoteID, clientsTable.stylistNoteID
LEFT JOIN notes on clientTable.clientNotesID = notes.noteID
LEFT JOIN notes on clientTable.staffNoteID = notes.noteID as staffNote

(не то, чтобы я думал, что это действительно имеет слишком много смысла)

Итак, как я могу запросить, чтобы я мог распечатать в конце:

clientName | clientNote | staffNote

Ответы [ 3 ]

2 голосов
/ 31 августа 2010

Когда вы присоединяетесь к таблице, увы должны быть сразу после имени таблицы, а не после условия объединения. Попробуйте вместо этого:

SELECT clientsTable.clientName, n1.note AS clientNote, n2.note AS staffNote
FROM clientsTable 
LEFT JOIN notes AS n1 ON clientTable.clientNotesID = n1.noteID
LEFT JOIN notes AS n2 ON clientTable.staffNoteID = n2.noteID 
1 голос
/ 31 августа 2010
SELECT CT.clientName, N1.note AS clientNote, N2.note AS staffNote
FROM clientsTable CT
LEFT JOIN notes N1 on CT.clientNotesID = N1.noteID
LEFT JOIN notes N2 on CT.staffNoteID = N2.noteID
1 голос
/ 31 августа 2010

вам нужно псевдоним самих таблиц

SELECT FROM clientsTable clientsTable.clientID, clientsTable.clientName, clientsTable.clientNoteID, clientsTable.stylistNoteID
LEFT JOIN notes a on clientTable.clientNotesID = a.noteID
LEFT JOIN notes b on clientTable.staffNoteID = b.noteID
...