[英]How I can pass the results obtained by a query with group_concat(distinct) in another query?
我有一个名为university_schools的表,该表包含每所大学的所有课程记录,而一个表university_main_campus的表包含所有大学的记录。 我想从该大学内每门课程的另一个表“课程”(包含所有详细信息,包括课程名,课程名等)中获取所有课程名称。
这是我的查询:
SELECT * FROM courses
WHERE course_id IN (SELECT GROUP_CONCAT(DISTINCT course_id) AS STR_CRSE_IDS
FROM `university_schools` WHERE univ_id = '2289')
我只得到第一条记录,而应该有11条记录。
请帮忙...
无需使用GROUP_CONCAT
构建自定义字符串。 您可以使用简单的IN
:
SELECT *
FROM courses
WHERE course_id IN (SELECT course_id
FROM university_schools WHERE univ_id = '2289');
请注意,使用GROUP_CONCAT
您将获得类似以下内容的信息:
IN ('1,2,3,4')
--and I guess you expect:
IN (1,2,3,4)
试试这个查询,
SELECT courses.*, b.STR_CRSE_IDS FROM courses INNER JOIN (SELECT DISTINCT course_id as STR_CRSE_IDS FROM university_schools WHERE univ_id = '2289') AS b ON courses.course_id = b.STR_CRSE_IDS
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.