Преобразование SQL - PullRequest
       11

Преобразование SQL

0 голосов
/ 16 ноября 2011

У меня есть правильно работающий запрос

select A.*, B.*
from A left join B on A.id = B.id and B.country = 'USA'

Теперь при левом соединении я могу поставить только 1 условие (A.id = B.id).Поэтому я должен поставить часть B.country = 'USA' где-нибудь еще.Есть ли обходной путь?Я могу использовать подзапросы.

Обновление: мне нужно работать со структурой (DBIx :: Class), в которой я определил единственное условие (сопоставление идентификатора) в схеме, и изменить его не просто.

1 Ответ

2 голосов
/ 16 ноября 2011

Вы можете разбить B на подзапрос и отфильтровать его там вместо объединения

SELECT A.*, B.*
FROM A
LEFT JOIN (
SELECT *
FROM B
WHERE COUNTRY = 'USA'
) B
    ON A.ID = B.ID
...