За последние 24 часа нас посетил 17701 программист и 1655 роботов. Сейчас ищут 905 программистов ...

Запрос UNION , незнаюкак составить

Тема в разделе "MySQL", создана пользователем mikeles, 15 ноя 2009.

  1. mikeles

    mikeles Активный пользователь

    С нами с:
    1 ноя 2009
    Сообщения:
    51
    Симпатии:
    0
    У меня структура таблицы имеет такой вид


    POKUPKA
    |
    PODKATALOG---KATALOG
    |
    OBJAVA
    |
    REGION


    Мне нужно вывести katalogID & katalogName при жестком условии regionID=(ЧИСЛО) И pokupkaID=(ЧИСЛО)
    Я сделал такой запрос, но он не совсем работает. Он выводит regionID=(ЧИСЛО) ИЛИ pokupkaID=(ЧИСЛО).

    [sql](SELECT katalog.katalogID ,katalog.name FROM katalog left join podkatalog on katalog.katalogID=podkatalog.katalogID left join objava on objava.podkatalogID=podkatalog.podkatalogID left join region on region.regionID=objava.regionID where region.regionID=3)
    UNION
    (SELECT katalog.katalogID ,katalog.name FROM katalog left join podkatalog on katalog.katalogID=podkatalog.katalogID left join pokupka on podkatalog.pokupkaID=pokupka.pokupkaID where pokupka.pokupkaID=5)[/sql]

    Подскажите, как правильно составить запрос?
     
  2. mikeles

    mikeles Активный пользователь

    С нами с:
    1 ноя 2009
    Сообщения:
    51
    Симпатии:
    0
    Вообщем нашёл ответ на свой вопрос:


    [sql]
    SELECT DISTINCT t2.katalogID,t2.name FROM
    (SELECT katalog.katalogID,katalog.name FROM katalog left join

    podkatalog on katalog.katalogID=podkatalog.katalogID left join

    pokupka on podkatalog.pokupkaID=pokupka.pokupkaID where

    pokupka.pokupkaID=5) t1, (SELECT katalog.katalogID ,katalog.name

    FROM katalog left join podkatalog on

    katalog.katalogID=podkatalog.katalogID left join objava on

    objava.podkatalogID=podkatalog.podkatalogID left join region on

    region.regionID=objava.regionID where region.regionID=1) t2

    where t2.katalogID= t1.katalogID[/sql]

    Может кому пригодиться...