mysql - How to write a sql query -
i have 3 tables
quality
id    name ----------  1    bold  2    frank  3    quite  4    friendly student
id name ---------  1   2  b  3  c studentquality
id  fk_qual  fk_stud  1   1        1  2   2        1  3   1        2  4   2        2  5   3        2  6   1        3  7   2        3  8   3        3  9   4        3 these tables. how students bold, frank , quite. if use in operation, 3 students, need 2 students if use bold, frank, should 3 students if use bold, frank, quite , friendly, should 1 students how query this.
you like:
- declaring table variable, holding values you're searching for
- selecting data , using table variable condition inner join , counting values of table variable , compare them amount of qualities
like:
declare  @qualities table(qname  varchar(100)); insert   @qualities           values ('bold'),('frank'),('quite');         select s.name          student s    inner join studentquality sq            on s.id = sq.fk_stud    inner join quality q            on sq.fk_qual = q.id           , q.name in (select qname @qualities)                 group s.name       having count(*) = (select count(qname) @qualities)   
Comments
Post a Comment