Помогите составить сложный sql запрос из 3 таблиц

Тема в разделе "Базы данных", создана пользователем dandandan, 12 авг 2009.

Статус темы:
Закрыта.
Модераторы: latteo
  1. dandandan

    dandandan

    Регистр.:
    7 авг 2008
    Сообщения:
    986
    Симпатии:
    256
    есть три таблицы.


    Нужно зная id_mdl в model_ttx получить id_sh в model_ttx. П полученному id_sh получить соответствующие links_idd в sh_ttx. По полученным links_idd выбрать id и zag в links_idd . при этом значения zag должны быть уникальными
     
  2. antidote

    antidote

    Регистр.:
    21 янв 2008
    Сообщения:
    167
    Симпатии:
    42
    Код:
    SELECT DISTINCT lI1.zag AS 'zag', mT1.id_sh AS 'id_sh', sT1.links_idd AS 'links_idd' FROM model_ttx AS mT1
    INNER JOIN sh_ttx AS sT1
    ON mT1.is_sh = sT1.id
    INNER JOIN links_idd AS lI1
    ON sT1.links_idd = lI1.id
    WHERE mT1.id_mdl = 1
    
    но тут учитываются поля которые присутствуют во всех таблицах, потому что используется inner join.
     
    dandandan нравится это.
  3. AndreyD2

    AndreyD2

    Регистр.:
    21 окт 2008
    Сообщения:
    194
    Симпатии:
    67
    Код:
    select  distinct links_idd.zag from model_ttx 
    inner join sh_ttx On sh_ttx.ID = model_ttx.id_sh
    inner join links_idd On links_idd.ID = sh_ttx.links_idd
    where id_mdl = 1
    Выбрать уникальные zag можно без id, с id если только группировать, но id будет 1 на все одинаковые zag
    Код:
    select  MAX(links_idd.ID), links_idd.zag from model_ttx 
    inner join sh_ttx On sh_ttx.ID = model_ttx.id_sh
    inner join links_idd On links_idd.ID = sh_ttx.links_idd
    where id_mdl = 1
    group by links_idd.zag
     
    dandandan нравится это.
  4. dandandan

    dandandan

    Регистр.:
    7 авг 2008
    Сообщения:
    986
    Симпатии:
    256
    Друг предложил другой способ.
    проверено, тоже работает.
     
  5. juggernaut13

    juggernaut13 Постоялец

    Регистр.:
    23 авг 2009
    Сообщения:
    59
    Симпатии:
    16
    друг написал в короткой записи
     
Статус темы:
Закрыта.