肯定 → 否定
He has had something to eat,hasn’t he?
(完成时中,第一个have 在此为助动词,疑问部分只能用have)
He has(got)something to eat,hasn’t/doesn't he?
(have 在此为实义动词的“有”,此时可用do 也可用have)
He had a shower,didn’t he?
(have 在此为实义动词,但不作“有”讲,此时只能用助动词do)
你提到的have sports,have lunch,它们都不作“有”讲,因此用do
否定 → 肯定
He hasn’t(got)much money,has he?
He doesn’t have much money,does he?
(根据have否定形式来选have 或do)
另外,had better是固定搭配,表“最好”,疑问句用hadn't
have to也是固定搭配,表“不得不”,疑问句用don't