我有一個表叫票:獲取父行與兒童和條件
ticket (idTicket, title , message , parentTicket, lastdate, status)
狀態得到了默認值:開,一旦我(MOD)回覆設置爲回答
我想得到與狀態打開(新創建和最後一次用戶回覆)
示例有效票的意思是:
13 , 'Title 1' , 'msg Title1' , NULL , 'open'
14 , 'Title 2' , 'msg Title2' , NULL , 'open'
15 , 'reply Title 2' , 'reply msg Title2' , 14 , 'replied'
16 , 'Title 3' , 'msg Title3' , NULL ,'open'
17 , 'reply Title 3' , 'reply msg Title3' , 16 , 'replied'
也不馬利我應該只列出票號13
我的2個查詢的想法,但沒有運氣
1/
SELECT *
FROM ticket AS parent LEFT JOIN
ticket AS child
ON child.parentTicket = parent.idTicket
WHERE parent.parentTicket IS NULL and child.status ="open"
ORDER BY parent.idTicket, child.idTicket;
2/
Select t1.idTicket ,t2.parentTicket
from ticket t1 inner join
ticket t2
on (t1.idTicket != t2.parentTicket)
where t1.status ="open" and t2.parentTicket is null
Group by idTicket
3/
Select a.idTicket ,a.titleTicket,a.parentTicket
from ticket a
where not exists (select null from ticket b where a.parentTicket!=b.parentTicket)
and a.status='open'
謝謝斯賓塞,其實我弄明白了,但有一個小錯誤,這裏是:13,'Title 1','msg Title1',NULL,'open' 14,'Title 2',' msg Title2',NULL,'open' 15,'reply Title 2','reply msg Title2',14''回覆' 16,'Title 3','msg Title3',NULL,'open' 17, 'reply title 3','reply msg Title3',16''回覆' 18,'Title 4','msg title 4',Null,'open' 19,'reply title 3','msg reply title 3 ',16,'打開',通常它應該列出票證編號:13 18和16但只顯示13和18 – Krasic
好吧我編輯了你的查詢,SELECT p。*,c.idTicket FROM票p LEFt JOIN票c ON c.parentTicket = p.idTicket 其中p.status =「打開」 AND c.parentTicket IS NULL ,但是最後一行不顯示根目錄ID ...(它是16)它顯示19 – Krasic