【问题标题】:Inner Join sqlite from multiple tables来自多个表的内部连接 ​​sqlite
【发布时间】:2013-04-25 20:18:34
【问题描述】:

Follow code 给了我一个模棱两可的列 DRIVER.driv_id 错误,有什么帮助吗?

SELECT DRIVER.driv_id, DRIVER.firstName, DRIVER.surName, DRIVER.nationality,   TEAMSTANDING.teamName, RESULTS.points
FROM TEAMSTANDING INNER JOIN DRIVER ON TEAMSTANDING.driv_id=DRIVER.driv_id,
RESULTS INNER JOIN DRIVER ON RESULTS.driv_id=DRIVER.drv_id
WHERE TEAMSTANDING.comp_id=2
GROUP BY DRIVER.driv_id;

【问题讨论】:

  • 除了我在下面的回答之外,我不确定您的查询是否符合您的想法。在第一次内部连接之后,你就有了,这意味着你正在对 RESULTS 进行交叉连接。

标签: sql sqlite join


【解决方案1】:

您必须尝试多次添加驱动程序表才能创建它

SELECT 
    DRIVER.driv_id, DRIVER.firstName, DRIVER.surName, DRIVER.nationality,   TEAMSTANDING.teamName, RESULTS.points   
FROM 
    TEAMSTANDING
    INNER JOIN 
        DRIVER
ON 
        TEAMSTANDING.driv_id=DRIVER.driv_id
    INNER JOIN 
        RESULTS 
    ON 
        RESULTS.driv_id=DRIVER.drv_id
WHERE 
    TEAMSTANDING.comp_id=2
GROUP BY 
    DRIVER.driv_id;

【讨论】:

    【解决方案2】:

    您的查询中已将 DRIVER 连接到两次,因此您有两个别名为 DRIVER 的表,并且您使用两个表中的 driv_id。

    将另一个表别名为其他表,或者,如果不需要,则将其从 JOIN 中删除。

    【讨论】:

    • 我稍后会在 sqlfiddle 上放一些东西。现在不能。
    • sqlfiddle.com/#!6/7477e/6 这是我认为您正在尝试编写的查询。下面是您的 FROM 语句以供比较。
    猜你喜欢
    • 1970-01-01
    • 2011-10-04
    • 2021-11-08
    • 1970-01-01
    • 1970-01-01
    • 2012-03-22
    • 1970-01-01
    • 1970-01-01
    • 2017-03-28
    相关资源
    最近更新 更多