In the following one to many
CREATE TABLE source(id int, name varchar(10), PRIMARY KEY(id)); CREATE TABLE params(id int, source int, value int);
where params.source is a foreign key to source.id
INSERT INTO source values(1, 'yes'); INSERT INTO source values(2, 'no'); INSERT INTO params VALUES(1,1,1); INSERT INTO params VALUES(2,1,2); INSERT INTO params VALUES(3,1,3); INSERT INTO params VALUES(4,2,1); INSERT INTO params VALUES(5,2,3); INSERT INTO params VALUES(6,2,4);
If i have a list of param values (say [1,2,3]), how do I find all the sources that have ALL of the values in the list (source 1, ‘yes’) in SQL?
Thanks
Edit Modified to handle case where there can be multiple occurances of the value for a given source.
Try this:
You can rewrite it to a GROUP BY as well: