我需要帮助解决此查询。 列出与拥有empno 77的员工Joe Bloggs在同一家电影院工作的员工的员工详细信息。 我做错了什么让它返回(未选择行)。
SELECT *
FROM Employee
WHERE Cinema_no = ( SELECT Cinema_no
FROM Employee
WHERE First_name = 'Joe' AND Surname = 'Bloggs')
ORDER BY Surname ASC ;
答案 0 :(得分:0)
然后假设所有表名和列名都是正确的,要进行调试,必须确保子查询首先生效。单独运行它,以进行一些“线索与错误”调试
SELECT
*
FROM Employee
WHERE First_name = 'Joe'
AND Surname = 'Bloggs'
也许尝试喜欢?和/或条件较少
SELECT
*
FROM Employee
WHERE First_name LIKE 'Joe%'
-- AND Surname LIKE 'Bloggs%'
-- AND empno = 77
删除-如果上述一项正常工作
一旦可以正常使用,那么您的查询余额就可以满足您的目标。
SELECT *
FROM Employee
WHERE Cinema_no = (
SELECT Cinema_no
FROM Employee
WHERE First_name = 'Joe' AND Surname = 'Bloggs'
and empno = 77
)
and empno <> 77
ORDER BY Surname ASC ;
答案 1 :(得分:0)
不能100%确定您的数据是什么样子,而是将“ =”替换为关键字“ in” 对于将来使用此逻辑的查询,这将派上用场。 我进行了更改,并在下面添加了代码。
SELECT *
FROM Employee
WHERE Cinema_no in ( SELECT Cinema_no
FROM Employee
WHERE First_name = 'Joe' AND Surname = 'Bloggs')
ORDER BY Surname ASC ;