저는 노동 조합의 팬이 아니지만 때로는 그들에게 그들의 장소가 있습니다. :)
SELECT type, id, content FROM (
SELECT 'M' AS type, id, 0 AS reply_id, content FROM MESSAGE
UNION
SELECT 'R' AS type, message_id AS id, id AS reply_id, content FROM MESSAGE_COMMENT) a
ORDER BY id, reply_id
반환
+------+----+--------------------------------------------+
| type | id | content |
+------+----+--------------------------------------------+
| M | 15 | this is a message with no comments |
| M | 16 | this is another message with many comments |
| R | 16 | comment1 |
| R | 16 | comment2 |
| R | 16 | comment3 |
| M | 17 | this is another message with no comments |
+------+----+--------------------------------------------+
NB : 고아 message_comments는 우려했다 경우 UNION
의 두 번째 SELECT
쉽게 MESSAGE
테이블에 INNER JOIN
으로 재 작업 할 수있다.
댓글은 순서에 상관 없거나 ID로 주문할 수 있습니까? –
'content'필드에 다른 테이블/열의 값을 포함 시키려면 정말로 쿼리가 필요합니까? 반환 된 데이터에서 메시지 내용과 주석 내용에 대해 다른 열이있는 경우 간단한 SQL 쿼리를 작성할 수 있습니다. –