2013-08-27 1 views
0

Im пытается получить идентификатор, имя файла из 1 идентификатора таблицы не находится в studentfeeTable, где invoiceID равно 5, но я получил эту ошибку. Я не знаю, как с этим бороться. пожалуйста, помогитеОшибка при получении Операнд должен считать 1 столбец;

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

разумнее использовать «идентификатор» на вашем подзапроса, а не «*», потому что Youre возвращаются различные виды результата Rathen чем ID Youre ищет – zxc

ответ

1

В вашем запросе Sub вы должны выбрать Id, а не '*', потому что вы сравниваете его с идентификатором. Вы не можете сравнить один столбец со всей строкой. как MySQl знает, какое значение во всей строке сравнивается с идентификатором.
оно должно быть, как это

Select Id from student_fee_detail where invoiceID=5

3

Вы использовали "ID NOT IN (SELECT * FROM student_fee_detail где InvoiceID = 5)".

Вы должны использовать «ID NOT IN (Выбрать идентификатор из student_fee_detail, где invIDID = 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) ; 
+0

Thnks человек, некоторые, как я пришел, чтобы знать, что я сделал неправильно. – Subodh

Смежные вопросы