2013-07-02 72 views
0

加入我有以下的數據庫模式:http://pastebin.com/tET8Wj17MySQL的內部在同一個表

我想進行查詢,讓所有的消息時,我的user_id等於接收器或SENDER_ID,但也需要和獲取id_parent信息。

我曾考慮過使用INNER JOIN,但是無法真正將它用於同一張表。

+1

使用sqlfiddle而不是引擎收錄 - 爲這種事情更友好。 – Strawberry

+0

這裏是SQLfiddle(據我所知,沒有能力在SQLfiddle中進行約束):http://sqlfiddle.com/#!2/db149 – nrathaus

回答

2

你可以在同一個表上內聯接 - 你只需要給每個表一個獨特的別名。

SELECT t1.*, t2.* 
FROM table1 as t1 
INNER JOIN table1 as t2 ON t1.someField = t2.someField 

自反加入這樣可能會導致性能問題 - 要小心,並確保你能保持你的應用程序高性能。

+0

謝謝,幫了我很多! –

2

自連接是很簡單的使用別名

SELECT * 
FROM table1 a 
INNER JOIN table1 b 
ON a.id = b.parent_id