【发布时间】:2016-06-22 10:46:11
【问题描述】:
我已经为此奋斗了几天,由于 SQL 不是我经常使用的东西,我无法让我的查询按照我想要的方式工作。
我有一个简单的测试数据库,用于使用“toxi”解决方案标记记录(三个表,一个充当链接“ProgramCourses”)
我的桌子
Program:
- ProgramID : int
- ProgramName : varchar
Course:
- CourseID : int
- CourseName : varchar
ProgamCourses:
- ProgramID : int
- CourseID : int
我要做的是将所有标签收集为字符串,然后将它们作为新列添加到程序表中。
我的查询
SELECT * , GROUP_CONCAT(c.CourseName) AS tags_list
FROM `Program` p
LEFT JOIN ProgramCourses AS pc ON p.ProgramID = pc.ProgramID
LEFT JOIN Course AS c ON pc.CourseID = c.CourseID
GROUP BY p.ProgramID
ORDER BY p.ProgramID
这有点像我需要的,但它复制了一些列,我得到的结果是:
ProgramID ProgramName ProgramID CourseID CourseID CourseName tags_list
而不是
ProgramID ProgramName CourseName
任何帮助将不胜感激。 如果有人好心为我编写查询,请您用表和列的全名编写它,因为这将使我更容易理解和采用其他用途。 谢谢。
T.
【问题讨论】:
-
不要这样做。如果您希望标签为字符串,则在查询时进行计算。
-
不要使用邪恶
SELECT *
标签: mysql sql tags group-concat