查询问题
我一直收到错误:#1242 - 子查询返回超过1行
SELECT staffNumber, firstName, Surname, JobTitle
FROM Staff
WHERE branchNumber = (SELECT branchNumber
FROM Branch
WHERE city LIKE 'Portsmouth')
对于拥有完全相同代码的朋友,它可以正常工作,但由于某些原因不适合我。 :/ 所有帮助表示赞赏:)
答案 0 :(得分:2)
这意味着您的子查询匹配多个结果。
SELECT staffNumber, firstName, Surname, JobTitle
FROM Staff
WHERE branchNumber = (SELECT branchNumber
FROM Branch
WHERE city LIKE 'Portsmouth' LIMIT 1)
或者你可以这样做:
SELECT staffNumber, firstName, Surname, JobTitle
FROM Staff
WHERE branchNumber IN (SELECT branchNumber
FROM Branch
WHERE city LIKE 'Portsmouth')
答案 1 :(得分:0)
我想象这是一个数据问题,
SELECT branchNumber
FROM Branch
WHERE city LIKE 'Portsmouth'
返回多行。
以这种方式使用的子查询只需要返回一个结果。根据您的数据和您要完成的任务,您可以使用
解决此问题SELECT branchNumber
FROM Branch
WHERE city LIKE 'Portsmouth' LIMIT 1
或使用IN
代替=