MySQL内连接在同一个表上

时间:2013-07-02 12:29:09

标签: mysql

我有以下数据库架构:http://pastebin.com/tET8Wj17

我想进行查询,当我的user_id等于receiver或sender_id时获取所有消息,但也获取并获取id_parent消息。

我考虑过使用INNER JOIN,但不能真正使用同一个表。

2 个答案:

答案 0 :(得分:2)

您可以在同一个表上进行INNER JOIN - 您只需要为每个表提供一个独特的别名。

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

这样的反身连接可能会导致性能问题 - 请小心并确保您能够保持应用程序的性能。

答案 1 :(得分:2)

使用别名

进行自联接非常简单
SELECT *
FROM table1 a
INNER JOIN table1 b
ON a.id = b.parent_id