Query: sql = "SELECT * FROM images WHERE ID IN (SELECT jpgId FROM sales WHERE printed = 0)"
I'm getting the following error.
Here is an image of my tables. Obviously I want to fetch row marked "1" using the jpgId value from each row that is returned in the sales table (labeled "2")
Type mismatch in expression.
*PROBABLY* this means that jpgId in the sales table is not the same data type as id in the images table.
If you had shown the SCHEMA of the two tables, instead of a (mostly useless) data dump I could tell you for sure.
In any case, that's an inefficient way to do that.
would be much better.
SELECT I.* FROM images AS I, sales AS S WHERE I.id = S.jpgid AND S.printed = 0
But that will still give you a type mismatch if ID and jpgId are not the same datatype.
I would *guess* that ID is declared as auto_increment primary key which means that jpgId should be declared as int.
It's also possible that printed is not an int field, which it needs to be if you are going to compare it to the number 0.