Подключить таблицу postgres на две колонки?
Я не могу найти прямой ответ. Мой запрос выплевывает неправильный результат, и я думаю, потому что он не видит "И" как фактическое соединение.
Можете ли вы сделать что-то подобное, а если нет, то какой правильный подход:
SELECT * from X
LEFT JOIN Y
ON
y.date = x.date AND y.code = x.code
?
Ответы
Ответ 1
Это возможно:
Предложение ON - это наиболее общий вид условия соединения: он принимает выражение типа Boolean такого же типа, которое используется в предложении WHERE. Пара строк из T1 и T2 соответствует, если выражение ON оценивается как true для них.
http://www.postgresql.org/docs/9.1/static/queries-table-expressions.html#QUERIES-FROM
Ваш SQL выглядит нормально.
Ответ 2
Это хорошо. Фактически, вы можете поместить любое условие в предложение ON, даже одно
не связанные с ключевыми столбцами или даже с таблицами вообще, например:
SELECT * from X
LEFT JOIN Y
ON y.date = x.date
AND y.code = x.code
AND EXTRACT (dow from current_date) = 1