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) ;
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) ;
「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) ;
サブクエリでは、ID と比較しているため、「*」ではなく Id を選択する必要があります。1 つの列を行全体と比較することはできません。MySQl は、行全体のどの値が ID と比較されるかをどのように知るのでしょうか。
それはこのようでなければなりません
Select Id from
student_fee_detail where invoiceID=5