需要帮助形成SQLite连接查询

时间:2012-02-06 15:33:07

标签: sql join sqlite

我已经能够使用MS Access 2010进行查询,这正是我想要的,但我在SQLite3中遇到了麻烦。这是Access SQL

SELECT pubacc_lo.*
FROM pubacc_en 
LEFT JOIN pubacc_lo ON pubacc_en.call_sign = pubacc_lo.call_sign;

基本上它选择pubacc_lo表中的所有列以及表之间call_sign字段相等的行。 这不会将任何pubacc_en数据选择到MS Access中的最终查询中。

在SQLite 3中玩,我最接近的是

SELECT * FROM PUBACC_LO, PUBACC_EN WHERE PUBACC_en.call_sign=PUBACC_LO.call_sign

但是这个语句选择EN表中的所有数据以及LO表(交叉连接?)。我尝试了一些左外连接,但没有运气。任何提示将不胜感激!

2 个答案:

答案 0 :(得分:0)

 SELECT pubacc_lo.* FROM PUBACC_LO, PUBACC_EN WHERE UBACC_en.call_sign=PUBACC_LO.call_sign

如果您只想选择pubbac_lo的字段,则可以使用此字段。

答案 1 :(得分:0)

您应该可以使用与Access相同的查询。 SQLite3确实支持左外连接。

至于你的查询,如果你只想要LO表中的字段,那么在你的SELECT子句中请求如下:

SELECT PUBACC_LO.* 
FROM PUBACC_LO, PUBACC_EN 
WHERE PUBACC_en.call_sign=PUBACC_LO.call_sign 

但问题是它只返回call_signs两个表中的条目,而来自访问的外连接将返回PUBACC_EN中的所有行,而不管是否有相应的{{1}进入..