首页 > 解决方案 > 我的问题是关于 SQL 中 OR 运算符的工作,它可以用来组合两个选择查询吗

问题描述

SELECT student.name 
FROM student
WHERE student.email = copy.owner AND copy.book = "978-0262033848" 
OR
SELECT student.name 
FROM student
WHERE student.email = loan.borrower AND loan.book = "978-0262033848";

在这段代码中,我尝试组合两个查询。它显示错误,我想知道以这种方式使用它的错误是什么

标签: sqlsqlite

解决方案


我最好的猜测是,这可以满足您的要求:

SELECT s.name
FROM student s
WHERE EXISTS (SELECT 1
              FROM copy c
              WHERE c.email = c.owner and c.book = '978-0262033848'
             ) OR
      EXISTS (SELECT 1 
              FROM loan l
              WHERE s.email = l.borrower and l.book = '978-0262033848'
             );

这会选择指定书籍的loan或表中的学生。copy


推荐阅读