Если вы хотите, чтобы C была базовой таблицей для запроса (т. Е. В основном взять таблицу C и добавить в соответствующие строки _data
), вы можете использовать:
SELECT A.A_id, A.A_data, B.B_id, B.B_data
FROM C
LEFT JOIN A ON A.A_id = C.A_A_id
LEFT JOIN B ON B.B_id = C.B_B_id
Это займет таблицу Cи JOIN
s передать его двум другим таблицам, используя C в качестве базовой таблицы (из-за LEFT JOIN
).Если в C есть строки, которых нет в A или B, вы просто получите соответствующий NULL для поля _data
.
Возможно, вы захотите взглянуть на различные объединения (INNER, LEFT, RIGHT, ...) , чтобы увидеть, какое поведение вы хотите.
Например, вы можете захотеть, чтобы все идентификаторы, присутствующие в таблице A, отображались, даже если их нет в C(и просто отобразите NULL для соответствующих столбцов B) и т. д.