2010-08-30 26 views
1

在mysql中,我想在同一个表格单元上做两个独特的LEFT JOIN。如何在同一个表格单元上做2个独特的LEFT JOIN?

我有两个表。

一个表格列出了单独的客户端,并为每个客户端有一个clientNoteID和staffNoteID条目。 clientNoteID和staffNoteID都是notesTable中note存储的唯一noteID的整数引用。

clientsTable:

clientID | clientName | clientNoteID | staffNoteID 

notesTable:

noteID | note 

我希望能够在notesTable由clientNoteID和引用的笔记中所涉及的说明两者的选择出由staffNoteID提供。

我没有看到任何方式别名LEFT JOIN,如:

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 

回答

2

当你加入一个表时,alas必须在表名之后,而不是在联接条件之后。试试这个:

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

感谢这么多,漂亮的工作表 – salonMonsters 2010-08-30 23:12:56

1

你需要自己别名

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 
1
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 
相关问题