【问题标题】:MySQL, second INNER JOINMySQL,第二个 INNER JOIN
【发布时间】:2013-03-02 17:43:02
【问题描述】:

您好,我想用一对 INNER JOIN 进行查询,我的错在哪里?

SELECT job_tbl.id, accounts.username AS starter, accounts.username AS worker, job_tbl.comment, job_tbl.date, job_tbl.status

来自job_tbl

在 job_tbl.starter = accounts.id 上的 INNER JOIN 帐户

在 job_tbl.worker = accounts.id 上的 INNER JOIN 帐户

job_tbl 表在这里:

+----+---------+--------+---------+------+--------+
| id | starter | worker | comment | date | status |
+----+---------+--------+---------+------+--------+
| 1  |    1    |    3   |   qwe   | date |   10   |
+----+---------+--------+---------+------+--------+
| 2  |    2    |    1   |   qwe   | date |   10   |
+----+---------+--------+---------+------+--------+

此处的帐户表:

+----+------------+-----------+-------+
| id |  username  | extension | email |
+----+------------+-----------+-------+
| 1  |   Julia    |    100    | email |
+----+------------+-----------+-------+
| 2  |    Eve     |    101    | email |
+----+------------+-----------+-------+
| 3  |    Max     |    102    | email |
+----+------------+-----------+-------+

我想要的结果是:

+----+---------+--------+---------+------+--------+
| id | starter | worker | comment | date | status |
+----+---------+--------+---------+------+--------+
| 1  |  Julia  |   Max  |   qwe   | date |   10   |
+----+---------+--------+---------+------+--------+
| 2  |   Eve   |  Julia |   qwe   | date |   10   |
+----+---------+--------+---------+------+--------+

【问题讨论】:

    标签: mysql


    【解决方案1】:

    您没有指定将哪个accounts 表实例用作启动器或工作器。 试试这个:

    SELECT job_tbl.id, job_tbl.description, Starter.username AS starter, Worker.username AS worker, job_tbl.comment, job_tbl.date, job_tbl.status
    FROM job_tbl
    INNER JOIN accounts AS Starter ON job_tbl.starter = Starter.id
    INNER JOIN accounts AS Worker ON job_tbl.worker = Worker.id
    

    【讨论】:

      【解决方案2】:

      问题是您要加入两个表,但未在表 accounts 上指定 ALIAS,从而导致状态不明确。

      SELECT  a.*,
              b.username StarterName,
              c.userName WorkerName
      FROM    job_tbl a
              INNER JOIN account b
                  ON a.starter = b.id
              INNER JOIN account c
                  ON a.worker = c.ID
      

      如需进一步了解联接,请访问以下链接:

      【讨论】:

        猜你喜欢
        • 2015-02-14
        • 1970-01-01
        • 2012-09-13
        • 1970-01-01
        • 2011-05-29
        • 1970-01-01
        • 1970-01-01
        • 2011-03-12
        • 2018-07-10
        相关资源
        最近更新 更多