2013-12-09 88 views
-3

查詢問題數據庫查詢問題#1242

我不斷收到錯誤:#1242 - 子查詢返回多個1行

SELECT staffNumber, firstName, Surname, JobTitle 
FROM Staff 
WHERE branchNumber = (SELECT branchNumber 
       FROM Branch 
       WHERE city LIKE 'Portsmouth') 

它工作正常,我的朋友誰擁有完全相同的代碼,但對於有些原因不是我。 :/ 所有幫助讚賞:)

回答

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') 
0

我想這是一個數據問題wherin,

SELECT branchNumber 
FROM Branch 
WHERE city LIKE 'Portsmouth' 

返回多行。

以這種方式使用的子查詢只需要返回一個結果。根據你的數據,你所要完成的是什麼,你可以用

SELECT branchNumber 
FROM Branch 
WHERE city LIKE 'Portsmouth' LIMIT 1 

解決這個問題或者使用IN代替=