如何在另一个查询中传递 group_concat(distinct) 查询获得的结果?
How I can pass the results obtained by a query with group_concat(distinct) in another query?
我有一个名为university_schools的table,其中包含每所大学的所有课程记录和一个table university_main_campus,其中包含所有大学的记录。我想要来自另一个 table 的所有课程名称,称为 'courses'(其中包含该大学每门课程的所有详细信息,包括 course_name、course_slug 等)。
这是我的查询:
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
我有一个名为university_schools的table,其中包含每所大学的所有课程记录和一个table university_main_campus,其中包含所有大学的记录。我想要来自另一个 table 的所有课程名称,称为 'courses'(其中包含该大学每门课程的所有详细信息,包括 course_name、course_slug 等)。
这是我的查询:
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