【问题标题】:how do i write my select query in mysql?我如何在 mysql 中编写我的选择查询?
【发布时间】:2016-01-29 15:40:20
【问题描述】:
表 A ------------------------------------- |编号 | parent_id |标题代码 | ------------------------------------- | 1 | 1 | 3 | | 23 | 1 | 2 | | 36 | 1 | 2 | | 40 | 23 | 5 | | 38 | 36 | 5 | | 17 | 40 | 8 | ------------------------------------- 表 B ------------------------------------- |编号 |标题 | ------------------------------------- | 3 |标题1 | | 2 |标题2 | | 5 |标题4 | | 8 |标题3 | ------------------------------------- 期望的结果: --------------------------------- |编号 |孩子|家长 | --------------------------------- | 1 |标题1 |标题1 | | 23 |标题2 |标题1 | | 36 |标题2 |标题1 | | 40 |标题4 |标题2 | | 38 |标题4 |标题2 | | 17 |标题3 |标题4 | ---------------------------------

【问题讨论】:

  • 你尝试了什么??

标签: mysql


【解决方案1】:

经过测试和工作的查询:(基于@xQbert 的查询 - 有一些变化)

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

【讨论】:

    【解决方案2】:

    看起来您需要将两个表都自加入 A 别名,然后将两个表单独加入 B。

    可能是这样的。

    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
    

    【讨论】:

      【解决方案3】:

      类似的东西:

      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
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-06-13
        • 1970-01-01
        • 1970-01-01
        • 2011-05-20
        • 2015-10-19
        • 2021-08-18
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多