2012-02-06 54 views
0

我已經能夠使用MS Access 2010進行查詢,只是做了我想要的,但我在SQLite3中遇到了麻煩。下面是接入SQL需要幫助形成SQLite加入查詢

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 

但這語句選擇所有與LO臺沿EN表中的數據(交叉連接?)。我試過一些左外連接,但沒有任何運氣。任何提示將不勝感激!

+0

原始語法應該在SQLite3中工作。當你嘗試它時會得到什麼結果(或錯誤信息)? – 2012-02-06 15:40:21

+0

爲什麼不只是使用相同的查詢訪問? SQLite應該給出相同的結果? – StevieG 2012-02-06 15:41:29

回答

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中的所有行,而不管是否存在對應的PUBACC_LO條目。

+0

感謝大家的幫助。我不確定爲什麼我認爲Access代碼在SQlite3中不起作用,但確實如此,男孩現在感到很蠢 – user1192537 2012-02-06 15:52:00

+0

好吧,我可以建議您通過點擊對應的複選標記來接受答案 - 將幫助確保您的問題在未來很快得到解答.. – StevieG 2012-02-06 16:29:13

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

如果你只需要選擇pubbac_lo的領域,這是你可以使用的東西。