0

我试图从 1 个表 id 中获取 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) ;
4

2 回答 2

3

您使用了“ID NOT IN (Select * from student_fee_detail where 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) ;
于 2013-08-27T06:14:16.543 回答
1

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

Select Id from student_fee_detail where invoiceID=5

于 2013-08-27T06:13:07.683 回答