获取错误操作数应包含1个列;

时间:2013-08-27 06:05:15

标签: mysql mysql-workbench

我试图获取id,来自1表id的feename不在studentfeeTable中,其中invoiceID为5,但我收到此错误。我不知道如何处理它。请帮忙

select id, Fee_Head_Name from admission_fees_structure Where ID NOT IN (Select * from 
student_fee_detail where invoiceID=5) ;

2 个答案:

答案 0 :(得分:3)

您使用了“ID NOT IN(从student_fee_detail选择*,其中invoiceID = 5)”。

您应该使用“ID NOT IN(从student_fee_detail中选择ID,其中invoiceID = 5)”。

您应该将一列与另一列进行比较。不是整行。

在这种情况下,最好使用它。

select id, Fee_Head_Name 
FROM admission_fees_structure outer 
Where 
exists 
(Select 1 from Student_fee_detail inner 
where inner.invoiceID=5 and inner.ID = outer.ID) ;

答案 1 :(得分:1)

在您的Sub查询中,您必须选择Id而不是'*',因为您要将其与ID进行比较。您无法将单个列与整行进行比较。 MySQl将如何知道整行中哪个值与ID进行比较 它一定是这样的

Select Id from student_fee_detail where invoiceID=5