Ninazu
@Ninazu

Как выбрать записи по условию из разных таблиц, при условии существования хотя бы в одной из них?

Существует две таблицы одна из которых является по большей части расширенным вариантом второй(пару дополнительных столбцов). Перенести всё в одну таблицу на данном этапе невозможно. Есть запрос который формируется по общим для двух таблиц столбцам, WHERE, ORDER BY и LIMIT, в зависимости от настроек поиска. Вторая таблица является приоритетной и выборка должна производится из неё, но в случае если во второй таблице не существует строки удовлетворяющей критерию а в первой таблице такая строка есть, то вернуть строку из первой таблицы.
  • Вопрос задан
  • 400 просмотров
Пригласить эксперта
Ответы на вопрос 3
DmitriyEntelis
@DmitriyEntelis
Думаю за деньги
Наиболее простой вариант - просто сделайте запрос в приоритетную таблицу, если ничего не нашлось - сделайте запрос в оставшуюся таблицу.

UPD
А как потом мне обьединить результаты этих двух запросов? И отсортировать эти результаты?
Думал как-то через UNION, но что-то не получается

Ninazu в любом ЯП объедините, отсортируйте. Зачем грузить этим sql сервер.
Тем более что в описании задачи не упомянута необходимость объединять результаты.
Ответ написан
Комментировать
Ninazu
@Ninazu Автор вопроса
А как потом мне обьединить результаты этих двух запросов? И отсортировать эти результаты?
Думал как-то через UNION, но что-то не получается
Ответ написан
Комментировать
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
В таблице есть только одна строка, удовлетворяющая результату? Если да - то
SELECT * 
    FROM (
        SELECT 1 AS `tbl`, ... FROM `table1` WHERE ...
        UNION SELECT 2 AS `tbl` ... FROM `table2` WHERE ...
    ) AS `t`
    ORDER BY `tbl`
    LIMIT 1;
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы