php - 将一个 SELECT 组合到另一个 SELECT 中

标签 php mysql sql

简单问题:

有 2 个表:

  1. 流派[名称、歌曲ID]

  2. 歌曲 [id、标题、用户 ID、状态]

    从歌曲 INNER JOIN 流派中选择 ID、名称、标题、用户 ID、状态 Song.id=genre.songID ORDER BY id ASC;

从什么查询中获取结果

+----+-------------+----------------------+--------+--------+
| id | genre.name  | song.title           | userID | status |
+----+-------------+----------------------+--------+--------+
|  1 | tech        | Feel it all          |      1 |      1 |
|  2 | tech        | Tester               |      1 |      1 |
|  3 | music       | Sejujurnya           |      1 |      1 |
|  4 | music       | Not Done             |      1 |      1 |
|  5 | life        | Cinta                |      1 |      1 |
|  6 | life        | Feel it all          |      1 |      1 |
|  7 | life        | Not Done             |      1 |      1 |
|  8 | truth       | Tester               |      1 |      1 |
|  9 | tree        | Tester               |      1 |      1 |
| 10 | climb       | Tester               |      1 |      1 |
+----+-------------+----------------------+--------+--------+

+----+-------------+---------------------------------+--------+--------+
| id | genre.name  | song.title                      | userID | status |
+----+-------------+---------------------------------+--------+--------+
|  1 | tech        | Feel it all,Tester              |      1 |      1 |
|  2 | music       | Sejujurnya, Not Done            |      1 |      1 |
|  3 | life        | Cinta, Feel it all, Note Done   |      1 |      1 |
|  4 | truth       | Tester                          |      1 |      1 |
|  5 | tree        | Tester                          |      1 |      1 |
|  6 | climb       | Tester                          |      1 |      1 |
+----+-------------+---------------------------------+--------+--------+

谢谢

最佳答案

使用GROUP_CONCAT与 GROUP BY

SELECT 
   id,
   genre.name,
   GROUP_CONCAT(title) as title,
   userID,
   status 
FROM 
   songs 
INNER JOIN 
   genre 
ON 
   song.id=genre.songID 
GROUP BY 
   genre.name 
ORDER BY 
   id ASC

关于php - 将一个 SELECT 组合到另一个 SELECT 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18408570/

相关文章:

php - fatal error : Class 'Imagick' not found

mysql - react 迟钝的 Tomcat

mysql - ORDER BY 和 GROUP BY 的正确顺序是什么

sql - 使查询 Count() 返回 0 而不是空

php 表单将动态值、项目 ID 传递给 mysql

php - 使用带有 ftp 服务器的 postgresql 的复制功能

php - WordPress:ACF 将行添加到转发器字段

mysql - MySql 查询非空约束时出错

mysql - 返回在两列中多次出现的 Year-Value

比较行的 SQL 语句