如何连接多列关系的表?

时间:2016-05-23 17:00:23

标签: mysql

我有两个表 - 对象 ObjectRelation

对象表:

╔════╦═════════════╗
║ id ║ name        ║
╠════╬═════════════╣
║ 1  ║ Client Side ║
╠════╬═════════════╣
║ 2  ║ Javascript  ║
╠════╬═════════════╣
║ 3  ║ Html        ║
╠════╬═════════════╣
║ 4  ║ Server Side ║
╠════╬═════════════╣
║ 5  ║ NodeJS      ║
╚════╩═════════════╝

ObjectRelation表:

╔════╦══════════╦════════════╗
║ id ║ parentid ║ childrenid ║
╠════╬══════════╬════════════╣
║ 1  ║ 1        ║ 2          ║
╠════╬══════════╬════════════╣
║ 2  ║ 1        ║ 3          ║
╠════╬══════════╬════════════╣
║ 3  ║ 4        ║ 5          ║
╚════╩══════════╩════════════╝

这就是我希望看到的结果:

╔════╦═════════════╦════════════╗
║ id ║ parent      ║ children   ║
╠════╬═════════════╬════════════╣
║ 1  ║ Client Side ║ Javascript ║
╠════╬═════════════╬════════════╣
║ 2  ║ Client Side ║ Html       ║
╠════╬═════════════╬════════════╣
║ 3  ║ Server Side ║ Node JS    ║
╚════╩═════════════╩════════════╝

在mySQL中有没有机会这样做? 我尝试了很多组合,但仍然没有结果。

提前致谢。

1 个答案:

答案 0 :(得分:1)

只需JOIN两次Object表。一次为parentid,一次为childrenid

SELECT ObjectRelation.id, parent.name AS parent, children.name AS children
FROM ObjectRelation
JOIN Object AS parent ON parent.id=parentid
JOIN Object AS children ON children.id=childrenid