Объединить 4 таблицы в БД с помощью хранимой процедуры? - PullRequest
2 голосов
/ 03 ноября 2010

в моей базе данных есть таблица с 3 FK для 3 других таблиц. Я хочу выбрать данные в этой таблице + данные в 3 других таблицах, когда значение FK = значения PK в других таблицах

Ответы [ 4 ]

3 голосов
/ 03 ноября 2010
SELECT  *
FROM    t1
JOIN    t2
ON      t2.id = t1.t2_id
JOIN    t3
ON      t3.id = t1.t3_id
JOIN    t4
ON      t4.id = t1.t4_id
2 голосов
/ 03 ноября 2010
SELECT t1.Field1, t2.Field2, t3.Field3, t4.Field4
FROM Table t1
    INNER JOIN Table2 t2 ON t1.ID = t2.ID
    INNER JOIN Table3 t3 ON t1.ID = t3.ID
    INNER JOIN Table4 t4 ON t1.ID = t4.ID

Если в таблицах 2 - 4 не всегда совпадают строки и вы хотите, чтобы эти записи возвращались по-прежнему, измените INNER JOINs на LEFT JOIN

0 голосов
/ 07 января 2011

ВЫБРАТЬ * ОТ TBL1 T1 ПРАВИЛЬНОЕ СОЕДИНЕНИЕ TBL2 T2 ON T1.id = T2.id RGIHT JOIN TBL3 T3 ON T3.id = T2.id

Это вернет все записи из правой таблицы и соответствующие записи из левой таблицы.

0 голосов
/ 03 ноября 2010
SELECT * FROM ParentTable as pt
LEFT JOIN table1 as t1
ON pt.t1_ID = t1.ID
LEFT JOIN table2 as t2
ON pt.t2_ID= t2.ID
LEFT JOIN table3 as t3
ON pt.t3_ID= t3.ID

Это вернет запись, даже если в таблицах 1,2 или 3 совпадений нет. @Ada и @ Q исключат эти записи.

...