Здравствуйте!
Юзаю PostgreSQL. Есть запрос, у него куча условий сильно менять его лень, нужно добавить условие, хотел добавить join окуратно, вот простейший пример:
CREATE TABLE t1 (
id int
);
INSERT INTO t1 (id) VALUES (1);
INSERT INTO t1 (id) VALUES (2);
INSERT INTO t1 (id) VALUES (3);
CREATE TABLE t2 (
t1_id INT,
status INT
);
INSERT INTO t2 (t1_id, status) VALUES (1, 1);
INSERT INTO t2 (t1_id, status) VALUES (1, 1);
INSERT INTO t2 (t1_id, status) VALUES (1, 3);
Делаю запрос:
SELECT t1.*
FROM t1
INNER JOIN t2 ON (t1.id = t2.t1_id AND t2.status = 1)
WHERE
id=1 OR id=2 OR id=3
В WHERE просто для примера что куча условий
В итоге я получу 2 одинаковые записи c
id = 1, хотя нужно чтобы в
t1 были только уникальные записи (данные из
t2 меня не интересуют, нужно только чтобы там совпадало условие). Я конечно могу решить проблему добавив
GROUP BY id в конец, но это пахнет не очень хорошо.
Курил про разные Join-ы, но ничего не вышло.
Буду благодарен любой помощи.