嗨我有这个查询但它给我一个操作数错误应该包含1列不确定原因?
Select *,
(Select *
FROM InstrumentModel
WHERE InstrumentModel.InstrumentModelID=Instrument.InstrumentModelID)
FROM Instrument
答案 0 :(得分:1)
根据您的查询,您希望从instrument和instrumentModel表中获取数据,并且在您的情况下,在您选择*之后期望“来自表名”。当子选择查询运行以获得其结果时,其未找到表instrument.InstrumentModelId inorder通过匹配从表中获取结果,您可以使用join。或者您也可以通过tableName.fieldName选择perticuler字段,并在where条件中使用您的条件。
喜欢:
select Instrument.x,InstrumentModel.y
from instrument,instrumentModel
where instrument.x=instrumentModel.y
答案 1 :(得分:0)
您可以使用联接从2个连接的表中进行选择
select *
from Instrument i
join InstrumentModel m on m.InstrumentModelID = i.InstrumentModelID
答案 2 :(得分:0)
在列列表中使用子查询时,它们只需要返回一个值。您可以在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 ...
对于每个子查询,table0与table1的连接执行一次,导致这种查询的性能非常差。
因此,您应该加入表格,如另一个答案所述。