je pense que je suis coincé avec cette situation particulière:
sélectionner des lignes dans une à de nombreuses situations
Voici mes tableaux:
item_table:
id | article
1:
2: B
3: C
attr_table:
attr | item_id
1: 1
1: 2
2: 1
2: 3
3: 2
3: 3
Je voudrais savoir s'il est techniquement possible de récupérer tout élément qui est associé avec attr = 1 et 3. La réponse devrait être 'B' seulement. De même, si je demande un élément associé à attr = 1 et 2, je ne devrais obtenir que 'A'. Le fait est que attr_table peut potentiellement avoir beaucoup de lignes et je souhaite faire une seule requête.
Cette question semble facile et je suis assez contrarié de ne pas pouvoir y répondre.
J'espérais que quelqu'un de plus malin pouvait me donner un coup de main ...
Ne pas faire une jointure interne équivaut à une seconde sélection? –
Ceci est fragile, en utilisant le 'count =', car il ne fonctionnera pas à moins qu'il y ait exactement deux lignes attr correspondant à l'objet avec les attributs spécifiés. Mais pire, il échoue s'il y a deux lignes attr avec item_id = 1 et attr = 1 - donc cela ramène un faux positif, un item sans attr = 3. Et il ajoute le coût d'un groupe par. – tpdi
@Blank Xavier, je suis désolé mais je ne comprends pas ce que vous essayez d'obtenir. –