Étant donné les tableaux suivants:SQL complex'ish rejoint sur plusieurs tables avec de multiples conditions à travers toutes les tables
labels tags_labels
|id |name | |url |labelid |
|-----|-------| |/a/b |1 |
|1 |punk | |/a/c |2 |
|2 |ska | |/a/b |3 |
|3 |stuff | |/a/z |4 |
artists tags
|id |name | |url |artistid |albumid |
|----|--------| |------|-----------|---------|
|1 |Foobar | |/a/b |1 |2637 |
|2 |Barfoo | |/a/z |2 |23 |
|3 |Spongebob| |/a/c |1 |32 |
Je voudrais obtenir une liste des urls qui correspondent à deux conditions (qui peut être saisie par l'utilisateur dans le script qui utilise ces instructions). Par exemple, l'utilisateur peut vouloir lister toutes les URL qui ont les étiquettes "(1 OR 2) ET 3", mais seulement si elles sont par les artistes "Spongebob OU Whatever".
Est-il possible de le faire dans une seule instruction en utilisant les jointures internes/harry potter/cross/self? Ou devrais-je répartir la requête sur plusieurs instructions et mettre en tampon les résultats dans mon script?
Editer:
Et si c'est possible, à quoi ressemblerait la déclaration? : p
Harry Potter ??? –