假设sql中有两个表具有几乎相同的值,其中第一个表可视为完整数据,第二个表具有选择性数据。我需要得到第一个表中的数据,它不是第二个表的一部分。但是这里我需要比较两个表中的选择性行
total_students (s_id, s_name, s_class)
failed_students (s_id, s_name, s_class)
我只需要得到一份学生名单,名单上的学生是在表中的学生,但不在失败的学生只有一个特定的类。
我试着用 array_diff()
在参数化查询的结果上,从两个表中选择查询,但不能,因为结果是对象形式的。此外,对于这样的逻辑,我将不得不发出多个查询。
还尝试使用下面的查询用sql解决相同的问题
SELECT *
FROM total_students
LEFT OUTER JOIN failed_students ON total_students.s_id = failed_students.s_id
WHERE total_students.s_id IS NULL
AND total_students.s_class = "fourth";
但这也无济于事。
请推荐一种使用php或sql高效实现它的方法(首选)。
3条答案
按热度按时间q7solyqu1#
只是找到了一个更简单的解决方案
这似乎对我有效,但不确定这在所有情况下都是有效的。
eblbsuwk2#
oracle-minus获取2个数据集,并提供差异。
还有另一种方式。您想检查失败的学生id是否为空(假设这是一个键)
sqougxex3#
你要找的是总学子中不及格的学子,所以你的
WHERE
条件应在failed_students
表,不在学生总数上: