1

我有 2 个表,一个正在索引另一个。

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

有点像:

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

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

这可能吗?

任何帮助表示赞赏。

4

1 回答 1

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.

于 2012-10-09T05:39:27.093 回答