【问题标题】:triple join using sqlite使用 sqlite 进行三重连接
【发布时间】:2014-10-27 17:39:18
【问题描述】:

假设我们有 3 个表:

table1:名字,id

table2:id,姓氏

table3:姓氏,身高

我们要显示:名字,身高

我可能会为此使用完全联接:

select firstname, height from
(select firstname, lastname ln from table1 
                               full join table2 on table1.id=table2.id)
full join table3 on ln=table3.lastname

但是在 sqlite 中,完全和右连接不存在,我需要一些如何使用联合来获取它。 有什么想法,怎么做?

【问题讨论】:

    标签: sql sqlite join


    【解决方案1】:

    查询:

    SELECT firstname, height
    FROM table1 INNER JOIN table2 ON table1.id=table2.id
                INNER JOIN table3 ON table2.lastname=table3.lastname
    

    【讨论】:

    • 这是我尝试的第一个查询,但它返回 0 行。
    • @max,那么您在所有 3 个表中都没有匹配的行。如果没有匹配的行,则无法进行有效查询。
    【解决方案2】:

    你需要一个JOIN 在三个表之间

    SELECT T1.firstname, T2.lastname, T3.height
    FROM Table1 T1
    JOIN Table2 T2
    on T1.id = T2.id
    JOIN Table3 T3
    on T3.lastname = T2.lastname
    

    【讨论】:

    • 这也返回零行。
    • @max,表示三个表之间没有匹配的数据,可以post数据和预期的输出
    猜你喜欢
    • 1970-01-01
    • 2010-12-27
    • 2011-09-02
    • 2013-10-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-23
    • 2019-09-19
    相关资源
    最近更新 更多