Мне нужно написать запрос выбора, который объединяет таблицы на основе условия (в данном случае на основе значения в одном из столбцов). Я хотел бы сделать что-то вроде этого:
SELECT * FROM TableA INNER JOIN TableB ON (TableA.Column1 = TableB.Column1 OR TableA.Column1 = 0) -- Does not work!
Я не совсем уверен, что вы делаете, но похоже, что вы ищете внешнее соединение:
SELECT * FROM TableA LEFT OUTER JOIN TableB ON TableA.Column1 = TableB.Column1 WHERE TableB.Column1 IS NOT NULL OR TableA.Column1 = 0
Если вам нужны строки из таблицы A и строки из таблицы B, просто используйте два оператора select, разделенных командой UNION .
Это должно достичь того, что вам нужно:
SELECT * FROM TableA A WHERE A.Column1 = 0 OR EXISTS( SELECT B.Column1 FROM TableB B WHERE B.Column1 = A.Column1 );