【问题标题】:How to get all columns from one table and one column from another table in SQLITE如何在 SQLITE 中从一个表中获取所有列并从另一表中获取一列
【发布时间】:2020-12-04 19:34:48
【问题描述】:

我有 2 个具有相同列名但数据不同的表。考虑以下几点:

表1结构:

id, sid, text
1,  1,   'Hello World'
2,  1,   'Hello World again'
3,  2,   'Hw...'
4,  2,   'Hw2...'

还有表2:

id, sid, text
1,  1,   'Hello World 2'
2,  1,   'Hello World again 2'
3,  2,   'Hw2...'
4,  2,   'Hw22...'

我想根据“sid”查询“Table1”。例如,如果 sid 为 1,那么我应该得到 2 行结果,其中包含“Table1”中的所有列,但只有“Table2”中的“text”列。像这样:

id, sid, text,                  text
1,  1,   'Hello World',        'Hello World2'
2,  1,   'Hello World again',  'Hello World again 2'

我正在尝试 INNER JOIN 但我得到了重复:

SELECT Table1.*, Table2.text FROM Table1 INNER JOIN Table2 ON Table1.sid = Table2.sid WHERE Table1.sid = 1;

但是我得到了重复的行!我该如何解决这个问题?我知道有很多类似的问题,但我找不到有这个问题的。

【问题讨论】:

    标签: sql performance sqlite


    【解决方案1】:

    您必须使用 sid 和 id 来识别正确的行

    SELECT 
        t1.*, t2.text
    FROM
        Table1 t1
            INNER JOIN
        Table2 t2 ON t1.sid = t2.sid AND t1.id = t2.id
    WHERE
        Tt1.sid = 1;
    

    【讨论】:

      猜你喜欢
      • 2021-10-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-09-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-08-01
      相关资源
      最近更新 更多