MySQL - соединение с оператором or? - PullRequest
0 голосов
/ 27 сентября 2011

У меня есть запрос, в котором я хочу присоединиться к другой таблице, если поле имеет одно или другое значение. Как бы я поступил так? Должен ли я использовать оператор или? (Это вообще возможно?) Или будет достаточно оператора IN?

SELECT table1.field1,table2.field2 FROM table1
INNER JOIN table2 ON table1.field1 = table2.field2 OR table2.field2 = 0

По сути, поле в таблице 2 может быть совпадением из таблицы 1 или числа 0, я хочу сделать совпадение либо с, либо с. Таким образом, если нет совпадения из поля table1 и table2, но в таблице table2 есть 0, я хочу присоединиться к таблице. Надеюсь, что это имеет смысл. Или это будет работать / будет лучше?

SELECT table1.field1,table2.field2 FROM table1
INNER JOIN table2 ON table1.field1 IN(table2.field2,0)

1 Ответ

2 голосов
/ 27 сентября 2011

Я подумаю об этом немного по-другому и начну с table2.

SELECT table1.field1, table2.field2
    FROM table2
        LEFT JOIN table1
            ON table2.field2 = table1.field1
    WHERE table2.field2 = 0
        OR table1.field1 IS NOT NULL
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...