Được rồi, tôi nghĩ tôi đã có được những gì bạn muốn bây giờ. Tôi không có cách nào để kiểm tra phiên bản MYSQL của chức năng này một cách nhanh chóng, nhưng phiên bản SQLite hoạt động tốt và theo tài liệu, MySQL sẽ hoạt động tốt như vậy. Tuy nhiên, có thể là một cách tốt hơn để làm điều đó trên MySQL.
SQLite:
SELECT a. *, IFNULL (b.Is_Reply_To, a.Comment_ID) as Is_Reply_To FROM Comments a LEFT JOIN Comments_Reply b HAVING (Comment_ID) ORDER BY Is_Reply_To ASC, a.Comment_ID ASC
MySQL
SELECT a. *, IF (IS NULL (b.Is_Reply_To), a.Comment_ID, b.Is_Reply_To) as Is_Reply_To FROM Comments a LEFT JOIN Comments_Reply b HAVING (Comment_ID) ORDER BY Is_Reply_To ASC, a.Comment_ID ASC
Điều này tạo ra các kết quả này cho tôi trên SQLite.
Comment_ID Is_Reply_to
1 1
10 1
11 1
2 2
12 2
3 3
13 3
14 3
4 4
5 5
6 6
7 7
8 8
9 9
15 15