0

1 つのテーブルから ID、feename を取得しようとしています ID は、invoiceID が 5 である StudentfeeTable にはありませんが、このエラーが発生しました。対処方法がわかりません。助けてください

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 (invoiceID=5 の場合、student_fee_detail から ID を選択)」を使用する必要があります。

ある列を他の列と比較する必要があります。行全体ではありません。

このシナリオでは、存在を使用することをお勧めします。

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 を選択する必要があります。1 つの列を行全体と比較することはできません。MySQl は、行全体のどの値が ID と比較されるかをどのように知るのでしょうか。
それはこのようでなければなりません

Select Id from student_fee_detail where invoiceID=5

于 2013-08-27T06:13:07.683 に答える