去一級標籤

zhengyeye發表於2018-09-13

先看一張圖:

需求:

找出這張表(class)中標籤所有state=0的標籤,但是如果有二級標籤,就不顯示其一級,只顯示所有沒有二級標籤的一級標籤一級所有的二級標籤。

SELECT * from class where id NOT in (SELECT pid FROM class WHERE pid>0) AND state=1

SELECT * from class where id not in (SELECT DISTINCT pid from class WHERE pid>0) AND state=1

只存在二級標籤,無三級標籤的情況下(推薦使用前面的方法),具體也是需要考慮實際情況,自己酌情處理

select pid from class group by pid //按pid分組,會得到兩組結果,0和117 ,只適合兩級標籤