繁体   English   中英

如何在另一个查询中传递带有group_concat(distinct)的查询所获得的结果?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM