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

Подключить таблицу postgres на две колонки?

Я не могу найти прямой ответ. Мой запрос выплевывает неправильный результат, и я думаю, потому что он не видит "И" как фактическое соединение.

Можете ли вы сделать что-то подобное, а если нет, то какой правильный подход:

SELECT * from X
LEFT JOIN Y
ON
  y.date = x.date AND y.code = x.code

?

4b9b3361

Ответ 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