1
I have this select
SELECT
`works`.`grade_id` FROM `works`
INNER JOIN `work_images` ON `work_images`.`work_id` = `works`.`id`
INNER JOIN `work_students` ON `work_students`.`work_id` = `works`.`id`
RIGHT OUTER JOIN qrcodes on qrcodes.code = works.teacher_qrcode
WHERE
(
works.school_id IS NOT NULL
AND works.material_id > 0
AND works.teacher_qrcode IS NOT NULL
AND work_students.student_qrcode IS NOT NULL
)
AND (work_students.student_qrcode =
('2odclt6c','s4001d5j8','s4000p3sd','0413g8vsj',
'i40008tia','2odco0dv','2odd12pn','0413gsqma','2odfkal3','0413a4i8u','2odg00n4',
'04137plis','2odehfpg','2odg9qhn','2oddpe4k','s40020n0c','i400112td','04136t1ti',
'0413agib3','0413a12o7'))
LIMIT 6
OFFSET 0
And I get this error while running:
ERROR 1241 (21000): Operand should contain 1 column(s)
Where the column is missing ?
Where should contain ?
– user12010
is now in port
– user12010
Probably the problem is here: You are using the same to compare several values. If you want to know if it is one of a list of several, use the IN:
work_students.student_qrcode IN( '2o...
– Bacco
I edited your question so SQL fit on the screen, it is easier for people to read and identify other problems. Looking at it this way, it seems to me that the problem really is the
=
in the place where the IN should be. By the way, if it’s all AND, it doesn’t even need the( )
.– Bacco
Really was the = , thanks
– user12010