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

Тема в разделе "Как сделать...", создана пользователем Juri, 17 июл 2009.

Статус темы:
Закрыта.
  1. Juri

    Juri

    Заблокирован
    Регистр.:
    5 окт 2007
    Сообщения:
    1.068
    Симпатии:
    197
    В общем суть такая есть бд от dle а именно категории, как вытянуть все категории которые не имеют подкатегорий.

    id | parentid | name
    ---------------------
    1 | 0 | cat1
    2 | 1 | cat2
    3 | 1 | cat3
    4 | 0 | cat4
    5 | 0 | cat5
    6 | 0 | cat6
    7 | 6 | cat7
    ---------------------

    получается запрос должен вывести 4 и 5ую категрии

    заранее спасибо
     
  2. ConstNW

    ConstNW Постоялец

    Регистр.:
    30 июн 2007
    Сообщения:
    132
    Симпатии:
    39
    Код:
    SELECT
    	c1.*
    FROM
    	category c1
    	LEFT JOIN category c2 ON(c1.id=c2.parentid)
    WHERE
    	c2.id IS NULL
    
    Спасибо, JSilver. Конечно же "IS NULL". Просто ночь была, засыпал уже :ah:
     
  3. JSilver

    JSilver Постоялец

    Регистр.:
    18 апр 2006
    Сообщения:
    106
    Симпатии:
    48
    выполни и найди отличие ;)
    Код:
    SELECT c1. * 
    FROM dle_category c1
    LEFT JOIN dle_category c2 ON ( c1.id = c2.parentid ) 
    WHERE c2.id IS NULL 
     
Статус темы:
Закрыта.