【问题标题】:SQLite Query with TWO columns referring to ONE两列引用一列的 SQLite 查询
【发布时间】:2015-12-08 15:27:39
【问题描述】:

我被难住了。我正在尝试编写一个 SQLite 查询,其中有两个表。一个表有两列都指向第二个表中的同一列。例如,

Table1
ID     Text     Sender     Recipient    
1     Hi There  1          2 
2     What?     2          1
3     Weirdo!   3          1

Table2
ID    Name     Screenname
1     Me       Me
2     Sally    Sal_gal
3     Bob      Bob

我正在尝试编写查询,因为表 1 中的发件人和收件人都指向表 2 中的 ID,因此我会得到以下结果。

Results
ID       Text       Sender       Recipient
1       Hi There    Me           Sally
2       What?       Sally        Me
3       Weirdo      Bob          Me 

【问题讨论】:

    标签: sql sqlite


    【解决方案1】:

    使用JOIN 两次:

    SELECT t1.ID, t1.Text, t2.Name AS Sender, t3.Name AS Recipient
    FROM Table1 t1
    JOIN Table2 t2
      ON t1.Sender = t2.ID
    JOIN Table2 t3
      ON t1.Recipient = t3.ID;
    

    LiveDemo

    输出:

    ╔════╦══════════╦════════╦═══════════╗
    ║ ID ║   Text   ║ Sender ║ Recipient ║
    ╠════╬══════════╬════════╬═══════════╣
    ║  1 ║ Hi There ║ Me     ║ Sally     ║
    ║  2 ║ What?    ║ Sally  ║ Me        ║
    ║  3 ║ Weirdo!  ║ Bob    ║ Me        ║
    ╚════╩══════════╩════════╩═══════════╝
    

    我假设您已在两个表之间定义了外部。否则你可能需要使用LEFT JOIN。

    【讨论】:

    • 谢谢!完美运行!
    猜你喜欢
    • 1970-01-01
    • 2020-05-03
    • 2020-08-24
    • 2012-01-10
    • 1970-01-01
    • 1970-01-01
    • 2020-10-11
    • 1970-01-01
    • 2013-09-25
    相关资源
    最近更新 更多