基于第一个表的多个响应对第二个表进行SQL查询
下面是一个SQL查询,如果第一个查询返回多个值,则该查询将失败-基于第一个表的多个响应对第二个表进行SQL查询,sql,Sql,下面是一个SQL查询,如果第一个查询返回多个值,则该查询将失败- SELECT subject FROM a_batchcourse_subject AS s WHERE (batchcourse = (SELECT batchcourse FROM a_course_batchcourse AS b
SELECT subject
FROM a_batchcourse_subject AS s
WHERE (batchcourse =
(SELECT batchcourse
FROM a_course_batchcourse AS b
WHERE (course = 'Course 1')))
在第一个查询可能返回多个值的情况下,编写此查询的正确方法是什么?您希望sql中的
而不是=
SELECT subject
FROM a_batchcourse_subject AS s
WHERE batchcourse IN
(SELECT batchcourse
FROM a_course_batchcourse AS b
WHERE course = 'Course 1')
您希望sql中的而不是=
SELECT subject
FROM a_batchcourse_subject AS s
WHERE batchcourse IN
(SELECT batchcourse
FROM a_course_batchcourse AS b
WHERE course = 'Course 1')
JOIN
比子句中的快得多
SELECT s.subject
FROM a_batchcourse_subject s
INNER JOIN a_course_batchcourse b
on s.batchcourse = b.batchcourse
WHERE (b.course = 'Course 1')
JOIN
比子句中的快得多
SELECT s.subject
FROM a_batchcourse_subject s
INNER JOIN a_course_batchcourse b
on s.batchcourse = b.batchcourse
WHERE (b.course = 'Course 1')
这是一个对我有效的精确查询从a_batchcourse_subject中选择s.subject作为s的内部连接a_course_batchcourse作为b ONs、 batchcourse=b.batchcourse,其中(b.course='course 1')@johntotetwoo join和in是两个不同的东西,in比join@Somebodyisintrouble也许您可以阅读这篇文章:。内部联接和in是两种不同的东西,如果b.batchcourse不是唯一的,您的查询将返回比预期更多的结果这是一个对我有效的查询,从a\U batchcourse\U主题中选择s.subjectAS s内部在s.batchcourse=b.batchcourse上以b的形式连接a\u课程\u batchcourse,其中(b.course='course 1')@johntotetwoo join和in是两个不同的东西,in比join@Somebodyisintrouble也许您可以阅读这篇文章:。内部联接和in是两种不同的东西,如果b.batchcourse不是唯一的,则查询返回的结果将比预期的要多。如果batchcourse是表a的batchcourse\U course\batchcourse唯一的,则尝试联接,否则使用表a的INis batchcourse\u course\u batchcourse Uniques如果batchcourse是唯一的,则尝试加入,否则在中使用