J'ai une table avec une colonne itemID et une colonne categoryID. Les deux colonnes sont les clés primaires parce que chaque élément peut avoir plus de 1 catégorie:SELECT JOIN dans la même table SUR plusieurs lignes
itemID | catID
-----------------
1 | 2
1 | 3
1 | 4
2 | 2
2 | 3
2 | 4
Je veux sélectionner des éléments avec les mêmes catégories (en fonction de toutes les catégories d'articles, pas seulement un), alors je dois genre de JOIN la même table.
Je veux être en mesure de trouver des ID d'article avec les mêmes catIDs en fonction d'un ID d'article spécifié.
Note: Par exemple l'article 1 a les catégories 2,3,4,5,6 et l'article 2 ont les catégories 2,3,4,5,6 et l'article 3 ont les catégories 3,5,6 alors si je comparer l'article 1 à l'article 2 et 3 je dois obtenir l'article 2 d'abord, puis l'article 3 parce que l'article 2 ont plus de correspondances de catégories que l'article 3 .. Évidemment, il faut faire avec tous les articles non seulement 3 .. recommander aux visiteurs de produits similaires ...
Veuillez donner un exemple non seulement des données et de la structure de la table, mais aussi du résultat attendu. – VolkerK
@VolkerK: Je ne pense pas que le résultat attendu puisse être dessiné comme une table. Le résultat attendu est d'obtenir des itemsID avec les mêmes catIDs. Donc, je peux faire un SELECT itemIDs qui ont les mêmes catIDs qu'un itemID spécifié. – Jonathan
Si le résultat ne peut pas être dessiné comme une table, alors il n'y a pas de SQL dans le monde qui va le produire. C'est l'un des principes de SQL, c'est que les résultats sont eux-mêmes des tables. Peut-être devriez-vous décomposer votre processus pour pouvoir trouver tous les éléments qui appartiennent à un ensemble particulier de catégories, et l'appeler pour toutes les combinaisons possibles de catégories. – siride