如何在mysql中编写select查询? 表A ------------------------------------- |id |家长id |职称代码| ------------------------------------- | 1 | 1 | 3 | | 23 | 1 | 2 | | 36 | 1 | 2 | | 40 | 23 | 5 | | 38 | 36 | 5 | | 17 | 40 | 8 | ------------------------------------- 表B ------------------------------------- |id |标题| ------------------------------------- |3 |标题1| |2 |标题2| |5 |标题4| |8 |标题3| ------------------------------------- 预期结果: --------------------------------- |身份证|子女|父母| --------------------------------- |1 | Title1 | Title1| |23 |标题2 |标题1| |36 |标题2 |标题1| |40 |标题4 |标题2| |38 |标题4 |标题2| |17 |标题3 |标题4| ---------------------------------
看起来您需要以两个表的别名自连接A,然后将两个表分别连接到B 也许是这样的 Table A ------------------------------------- | id | parent_id | title_code | ------------------------------------- | 1 | 1 | 3 | | 23 | 1 | 2 | | 36 | 1 | 2 | | 40 | 23 | 5 | | 38 | 36 | 5 | | 17 | 40 | 8 | ------------------------------------- Table B ------------------------------------- | id | title | ------------------------------------- | 3 | Title1 | | 2 | Title2 | | 5 | Title4 | | 8 | Title3 | ------------------------------------- Desired Result: --------------------------------- | id | child | parent | --------------------------------- | 1 | Title1 | Title1 | | 23 | Title2 | Title1 | | 36 | Title2 | Title1 | | 40 | Title4 | Title2 | | 38 | Title4 | Title2 | | 17 | Title3 | Title4 | --------------------------------- 诸如此类:如何在mysql中编写select查询? 表A ------------------------------------- |id |家长id |职称代码| ------------------------------------- | 1 | 1 | 3 | | 23 | 1 | 2 | | 36 | 1 | 2 | | 40 | 23 | 5 | | 38 | 36 | 5 | | 17 | 40 | 8 | ------------------------------------- 表B ------------------------------------- |id |标题| ------------------------------------- |3 |标题1| |2 |标题2| |5 |标题4| |8 |标题3| ------------------------------------- 预期结果: --------------------------------- |身份证|子女|父母| --------------------------------- |1 | Title1 | Title1| |23 |标题2 |标题1| |36 |标题2 |标题1| |40 |标题4 |标题2| |38 |标题4 |标题2| |17 |标题3 |标题4| ---------------------------------,mysql,Mysql,看起来您需要以两个表的别名自连接A,然后将两个表分别连接到B 也许是这样的 Table A ------------------------------------- | id | parent_id | title_code | ------------------------------------- | 1 | 1 | 3 | | 23 | 1 | 2 | | 36 | 1
SELECT Main.ID, Child.Title as Child, Parent.Title as parent
FROM A as Main
INNER JOIN A as Sub
on Sub.ID = Parent.Id
INNER JOIN B as Parent
on A.Title_Code = B.ID
INNER JOIN B as Child
on Child.ID = Sub.Title_Code
测试和工作查询:(基于@xQbert的查询-有一些更改)
你试过什么??
SELECT table_a.id, child.title AS child, parent.title AS parent
FROM table_a
LEFT JOIN table_b AS parent ON parent.id=table_a.parent_id
LEFT JOIN table_b AS child ON child.id=table_a.child_id
SELECT Main.id, Child.title as Child, Parent.title as Parent
FROM table_A as Main
INNER JOIN table_A as Sub
ON Sub.id = Main.parent_id
INNER JOIN table_B as Parent
ON Main.title_code = Parent.id
INNER JOIN table_B as Child
ON Child.id = Sub.title_code