13

この例では、SQLiteデータベースに3つの関連テーブルがあります。

CREATE TABLE test1 (
    c1 integer,
    primary key (c1)
);
CREATE TABLE test2 (
    c1 integer,
    c2 integer,
    primary key (c1, c2)
);    
CREATE TABLE test3 (
    c2 integer,
    c3 integer,
    primary key (c2)
);

次に、すべてのテーブルを結合する必要があります。

test1-> test2(c1列あり)
          test2-> test3(c2列あり)。

私はこの解決策を試しましたが、実行されません:

SELECT 
   * 
   FROM test1 a 
        LEFT OUTER JOIN test2 b
                        LEFT OUTER JOIN test3 c
                          ON c.c2 = b.c2 
          ON b.c1=a.c1 

それは私にエラーを与えます: near "ON": syntax error.

何か助けはありますか?

4

1 に答える 1

33

これはあなたのON声明の単純な置き忘れです。これはSQL標準に準拠しています。

SELECT * 
FROM test1 a 
LEFT OUTER JOIN test2 b ON b.c1=a.c1 
LEFT OUTER JOIN test3 c ON c.c2=b.c2 

これについては、ここでさらに詳しく説明します。

于 2012-06-19T17:15:36.663 に答える