Подтвердить что ты не робот

Sqlite LEFT OUTER JOIN Несколько таблиц

В этом примере мы имеем 3 связанные таблицы в базе данных SQLite:

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 (with c1 column)
          test2 -> test3 (with c2 column).

Я пробовал это решение, но оно не запускается:

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.

Любая помощь?

4b9b3361

Ответ 1

Это простое замещение вашего оператора 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 

Это объясняется в дополнительной глубине здесь.