我有一个表叫票:获取父行与儿童和条件
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