嗨,我有這個查詢,但它給我一個操作數的錯誤應該包含1列(s)不知道爲什麼?嵌套的SELECT SQL查詢工作臺
Select *,
(Select *
FROM InstrumentModel
WHERE InstrumentModel.InstrumentModelID=Instrument.InstrumentModelID)
FROM Instrument
嗨,我有這個查詢,但它給我一個操作數的錯誤應該包含1列(s)不知道爲什麼?嵌套的SELECT SQL查詢工作臺
Select *,
(Select *
FROM InstrumentModel
WHERE InstrumentModel.InstrumentModelID=Instrument.InstrumentModelID)
FROM Instrument
根據您的查詢你想從儀器instrumentModel表,並在你的情況下,其預計「從表名」的數據後,您的選擇*。當子選擇查詢運行以獲取其結果是其沒有找到表instrument.InstrumentModelId爲了通過匹配從表中獲取結果,您可以使用join。或者,也可以通過tableName.fieldName選擇細分字段,並在where條件中使用您的條件。
喜歡:
select Instrument.x,InstrumentModel.y
from instrument,instrumentModel
where instrument.x=instrumentModel.y
請不要在where子句中使用過時的隱式連接。使用現代顯式的'JOIN'語法 –
您可以使用連接到從2個連接表
select *
from Instrument i
join InstrumentModel m on m.InstrumentModelID = i.InstrumentModelID
選擇當您在列列表中使用子查詢,他們需要只返回一個值。你可以閱讀更多的documentation
,如文檔中評論過的用戶,使用這樣的子查詢可以毀掉你的表現:
當同一子查詢中多次使用,MySQL不會利用這一點來優化查詢,所以要小心不要遇到性能問題。
例如:
SELECT col0, (SELECT col1 FROM table1 WHERE table1.id = table0.id), (SELECT col2 FROM table1 WHERE table1.id = table0.id) FROM table0 WHERE ...
與表1是每個子查詢執行一次,導致了這種類型的查詢的表現很糟糕的table0的加入。
因此,您應該加入表格,如其他答案所述。
你可以粘貼你得到確切的錯誤信息? – wlk
錯誤代碼:1241.操作數應該包含1列 – mariovass