先看一張圖:
需求:
找出這張表(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 ,只適合兩級標籤