выберите категории, где их родитель тип 1 - PullRequest
0 голосов
/ 17 апреля 2019

У меня есть эта таблица категорий

|catId  |catName|catParentID|catType|
-------------------------------------
|1      |cat1   |null       |6      |
|2      |cat2   |null       |9      |
|3      |cat3   |1          |6      |
|4      |cat4   |2          |9      |
|5      |cat5   |1          |6      | 
|6      |cat6   |3          |8      |

родители находятся в одной таблице с подкатегориями, только у них нет родителей.

мне нужно получить все подкатегории, которые ихтип родителя - 6.

, результат вышеприведенного примера должен выглядеть следующим образом:

cat3
cat5

Ответы [ 4 ]

0 голосов
/ 17 апреля 2019

Попробуйте это ... (в зависимости от желаемого результата)

SELECT t1.*
FROM   tablename t1
       LEFT JOIN tablename t2 ON t1.catparentid = t2.catid
WHERE  t2.cattype = 6
       AND t2.catparentid IS NULL  
0 голосов
/ 17 апреля 2019
SELECT *
FROM   categories
WHERE  cattype = 6
       AND catparentid IS NOT NULL  
0 голосов
/ 17 апреля 2019

Самый простой способ,

SELECT * FORM categories WHERE catParentId ='1' AND catType ='6'
0 голосов
/ 17 апреля 2019

Учитывая вашу структуру данных, это похоже на работу:

select c.*
from categories c
where c.catParentID is not null and -- has a parent
      c.catType = 6;

Однако это не может быть общим решением. Таким образом, вы можете использовать самостоятельное соединение:

select c.*
from categories c join
     categories cp
     on c.catParentID = cp.catID
where cp.catType = 6;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...