Здравствуйте!
Нужно вывести все уникальные записи, у которых поле:
`rw_2a` равно 1
если же, есть записи у которых поле:
`rw_2a` равно 0
и при этом оно уникальное, то его выводить обязательно.
Но чтоб при этом сохранялась последовательность при выводе
order by `table_1`.`rw_1d` desc
Делаю примерно так:
SELECT DISTINCT
`table_1`.`rw_1a`,
`table_1`.`rw_1b`,
`table_2`.`rw_2a`
FROM
`table_1`
JOIN
`table_2`
ON
`table_1`.`rw_1c` = `table_2`.`rw_2c`
ORDER BY
`table_1`.`rw_1d` = :rw_1d
DESC;");
Но у меня выводятся все записи. В чем моя ошибка? Почему не выводятся уникальные записи?
Спасибо!
Примечание:
`table_1`.`rw_1a` | `table_1`.`rw_1b` | `table_2`.`rw_2a`
_____ aa1 _____ | ______ 0 _____ | ______ 1 _______
_____ aa2 _____ | ______ 0 _____ | ______ 1 _______
_____ aa2 _____ | ______ 0 _____ | ______ 0 _______
_____ aa3 _____ | ______ 0 _____ | ______ 0 _______
Вот обратите внимание на (две записи с одинаковыми значениями):
`table_1`.`rw_1a` = 'aa2'
Если есть запись у которой:
`table_2`.`rw_2a` = 1
`table_2`.`rw_2a` = 0
то выводить ту запись, у которой стоит 1
если же есть запись, у которой:
`table_2`.`rw_2a` = 0
и она единственная, то ее выводить.
Вот так примерно так должно работать.
Примечание:
решил проблему следующим образом:
1) разделил запрос на 2 запроса
2) добавил к обоим запросам group by
и саму логику движка пришлось переписать ..
P.S. Тема еще актуальна. Хочу понять, как можно это замутить в едином запросе.
Примечание:
Анатолий Широков, спасибо большое! То что надо!
RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.
Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.
Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.