Sqlite Query用另一个表中的列替换列

时间:2012-10-08 20:44:34

标签: sqlite

我有2个表,一个是索引另一个。

我正在查询表#1,它有一个列(字符串),其中有一个ID,对应于表#2中的唯一行。我试图在Sqlite中编写一个查询,如果表#1中的列值不是空字符串,则允许我从表#2中检索值。

有点像:

"SELECT TMake,TModel,TTrim,IYear,[%q] AS TPart1 FROM AppGuide WHERE TPart1 != ''"

但不是检索索引值(TPart1),而是喜欢从表#2中获取字符串。

这可能吗?

感谢任何帮助。

1 个答案:

答案 0 :(得分:1)

您可以使用相关子查询:

SELECT TMake,
       TModel,
       ...,
       (SELECT stringvalue
        FROM Table2
        WHERE Table2.ID = Table1.TPart1)
FROM Table1
WHERE Table1.TPart1 != ''

但是,这些执行起来相当慢,所以你最好使用一个连接(这会返回完全相同的结果):

SELECT Table1.TMake,
       Table1.TModel,
       ...,
       Table2.stringvalue
FROM Table1 LEFT JOIN Table2 ON Table1.TPart1 = Table2.ID
WHERE Table1.TPart1 != ''

如果您不想从Table1获取没有匹配Table2记录的记录,请删除LEFT