2012-02-06 18 views
0

私はMS Access 2010を使用してクエリを作成できましたが、SQLite3では問題なく処理できます。ここでアクセスSQLSQLite joinクエリを作成する際に助けが必要

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

は、基本的にはpubacc_lo表の列とCALL_SIGNフィールドは、テーブル間の等しいすべての行を選択します。 これは、MS Accessの最終クエリにpubacc_enデータのいずれも選択しません。 SQLiteの3で遊ん

は、私が得ている最も近い

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

たが、この文では、LOテーブルと一緒にENテーブル内のすべてのデータを選択する(クロス参加?)。私はいくつかの左外部結合を試したが、運がなかった。任意のヒントをいただければ幸いです!

+0

元の構文はSQLite3で機能するはずです。試してみるとどのような結果(またはエラーメッセージ)が表示されますか? –

+0

なぜアクセスと同じクエリを使用するだけではありませんか? SQLiteは同じ結果を与える必要がありますか? – StevieG

答えて

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_LOエントリがあるかどうかにかかわらず、すべての行がPUBACC_ENから返されます。

+0

助けをいただきありがとうございます。なぜ私はアクセスコードがSQlite3では動作しないと思ったのか分かりませんが、確かに、男の子は今、愚かな気持ちになります – user1192537

+0

OK、それにチェックマークをつけて回答を受け入れることをお勧めしますか?将来的にあなたの質問に素早く答えられるように助けてください。 – StevieG

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

pubbac_loのフィールドのみを選択したい場合は、これを使用できます。

関連する問題