我有2个表,一个是索引另一个。
我正在查询表#1,它有一个列(字符串),其中有一个ID,对应于表#2中的唯一行。我试图在Sqlite中编写一个查询,如果表#1中的列值不是空字符串,则允许我从表#2中检索值。
有点像:
"SELECT TMake,TModel,TTrim,IYear,[%q] AS TPart1 FROM AppGuide WHERE TPart1 != ''"
但不是检索索引值(TPart1),而是喜欢从表#2中获取字符串。
这可能吗?
感谢任何帮助。
答案 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
。