Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

PHP/MySql Selecionar comentários agrupados com respostas


Ok, acho que consegui o que você quer agora. Não tenho como testar a versão MYSQL desta função rapidamente, mas a versão SQLite funciona muito bem e, de acordo com a documentação, o MySQL deve funcionar tão bem quanto. Pode ser uma maneira melhor de fazer isso no 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

Isso produz esses resultados para my no 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