【问题标题】:SQL: How to use comma values to join another table? [duplicate]SQL:如何使用逗号值连接另一个表? [复制]
【发布时间】:2025-11-28 10:15:01
【问题描述】:

A:

id  username  like_books 
-----------------------
1   Peter     1,2,3
2   John      1,2

B

id  book_name  
-----------------------
1   Legend
2   *
3   Google

现在, 是否有任何sql语句可以显示如下输出:

输出:

id username    like_books
------------------------------------
1  Peter       Legend,*,Google
2  John        Legend,*

谢谢。

【问题讨论】:

  • @RahulTripathi MySQL
  • TableA:like_books 列类型是什么?
  • 您通常不会在数据库字段中使用逗号分隔的列表来连接到另一个数据库字段。每个字段的许多值打破了first normal form。合理的数据库设计通常会替换它with an additional table
  • @NguyễnHảiTriều VARCHAR(30)
  • @sirsince1990 哦...我的问题是重复的...

标签: mysql sql


【解决方案1】:

试试这个:

SELECT  a.id,a.username,
        GROUP_CONCAT(b.book_name ORDER BY b.id) like_books
FROM    A a
INNER JOIN B b ON FIND_IN_SET(b.id, a.like_books) > 0
GROUP   BY a.id

FIDDLE DEMO

【讨论】:

  • SQL 中的查询是什么?
  • 谢谢,这是工作。但是有没有更好的方法来设计数据库和模式?正如@9000 所说。
  • @Metaphor:- 这只是 SQL,适用于 MySQL 数据库。
  • @RahulTripathi 但是,我在 SQL 2012 中有错误。
  • 没有什么比得上 SQL 2012。您可能正在 SQL Server 中尝试...对吗?
最近更新 更多