2013-04-26 4 views
-1

Я хочу получить CategoryID (1); если его подкатегория (2) находится в таблице содержимого.Выберите верхнюю категорию из подкатегории id

Я имею в виду: получить категорию (2) из ​​контента; найти его родитель (1) в таблице категорий; и выберите строку верхней категории (categoryid: 1) - Так что я не мог выбрать строку верхней категории контента, как я могу это сделать?

categorytable:

CategoryID , ParentID 
    1   0 
    2   1 

contenttable:

_id, CategoryID 
    ...  2 

код:

SELECT DISTINCT contenttable.CategoryID, categorytable.CategoryID FROM categorytable 
        INNER JOIN contenttable 
        ON categorytable.CategoryID = contenttable.CategoryID 
+0

сено вы можете объяснить это простой способ –

+0

Ваш вопрос не ясен. Как вы соответствуете 'CategoryID' в' contenttable' с 'ParentID' в' tabletable'? – iCode

+0

По крайней мере укажите, как вы хотите, чтобы ваш выход был? – iCode

ответ

1
SELECT parent.CategoryID 
FROM categorytable AS parent 
JOIN categorytable AS child ON child.ParentID = parent.CategoryID 
JOIN contenttable   ON child.CategoryID = contenttable.CategoryID 
+0

Спасибо, это то, что я ищу. Но возможно ли «Выбрать DISTINCT contenttable.CategoryID», потому что родитель повторяется как количество детей. – metemet06

+0

ОК, я думаю, что SELECT 'DISTINCT' parent.CategoryID ... решается проблема, еще раз спасибо. – metemet06

-1

Ваш вопрос остается неясным. Этот запрос вы ищете?

select CategoryID.categorytable from categorytable where CategoryID.categorytable=(select ParentID.categorytable from categorytable where CategoryID.categorytable=(select CategoryID.contenttable from contenttable)); 
+0

Эти подзапросы не являются скалярными подзапросами. –

Смежные вопросы