我是sql新手,不知道如何从表中删除行。我有这个:
select distinct course.course_id, title, dept_name, credits
from course, section
where course.course_id not in (select course_id from section);
当它运行时,我得到一行: BIO-399 "Computational Biology" Biology 4
现在,我如何从“课程”表中删除它?我无法搜索这个特定的类,因为这段代码需要能够处理任何具有不同类的表。
我试过了
delete from course where course_id in
(select distinct course.course_id, title, dept_name, credits
from course, section
where course.course_id not in (select course_id from section));
但这行不通。它说“操作数应该包含1列”,但我想删除一行而不是一列。我看过几个类似问题的答案,并试图模仿答案,但我没有运气。
5条答案
按热度按时间vcudknz31#
你的
SQL
应该是这样的分解:
将从表中删除行
table-name
满足之后提供的条件where
条款条件是
column-name = value
.ncecgwcz2#
qpgpyjmq3#
5lhxktic4#
试试这个:
据我所知,你不需要加入这个查询的课程和部分。
请尝试此操作,看看是否得到相同的结果:
如果是,则使用此查询删除:
ulmd4ohb5#
您可以通过使用sql的join概念来尝试这一点。这里我们将使用左连接。
注意:这里我假设course\u id像外键一样出现在两个表中,如果不是,您能共享两个表的模式以更清晰吗?
希望这有帮助