基本上,我有两个表,一个[学生]表和一个[unit_allocation]表。 两个表都有名为course_abbr,course_name,month_of_admission和year_of_admission的列。
我想从学生表中选择记录,其中两个表中的上述4列具有相似的值。
答案 0 :(得分:1)
内部联接或存在是一种典型的解决方案:
select s.*
from students s
where exists (select 1
from units_allocation ua
where s.course_abbr = ua.course_abbr and
s.course_name = ua.course_name and
s.month_of_admission = ua.month_of_admission and
s.year_of_admission = ua.year_of_admission
);
答案 1 :(得分:0)
一种方法是使用INTERSECT
( SQL Server 和 Oracle 的工作
SELECT course_abbr, course_name, month_of_admission,year_of_admission
FROM students
INTERSECT
SELECT course_abbr, course_name, month_of_admission,year_of_admission
FROM units_allocation
或EXISTS
Mysql
SELECT *
FROM students s
WHERE EXISTS (SELECT 1
FROM units_allocation u
WHERE s.course_abbr = u.course_abbr
AND s.course_name = u.course_name
AND s.month_of_admission = u.month_of_admission
AND s.year_of_admission = u.year_of_admission)