mysql sélectionnez la requête sur deux tables
Je suis en train d'essayer d'obtenir un résultat de deux tables sans avoir une deuxième requête imbriquée à l'intérieur de la première requête en boucle.
J'ai une table produits:
product_code_1234 | product_name | otherfields...
Et une table catégories, où un produit peut avoir plusieurs catégories:
category_name_1 | product_code_1234
category_name_2 | product_code_1234
category_name_3 | product_code_1234
Est-il une requête pour obtenir le résultat suivant?
product_code_1234 | product_name | ... | category_name_1 | category_name_2 | category_name_3
- Pouvez-vous poster quelques exemples de données et ensuite le résultat souhaité?
Vous devez vous connecter pour publier un commentaire.
vous donnera toutes les données de la table a ,combiné avec toutes les données de la table b.
Toutefois, si vous ne voulez pas de répétition de données et il n'y a pas de connexion entre la table a et b, il ne peut pas être fait sans une union ou similaire
Supposons que vous disposez de ces tableaux:
Voici une requête basée sur de l'autre AFIN de répondre à, qui doit correspondre au résultat souhaité, si mon interprétation est correcte:
C'est le résultat:
Il n'est pas possible, cependant, d'avoir un nombre dynamique de catégories dans le résultat. Dans ce cas, j'ai limité le nombre de 3, comme dans votre question. Il y a peut être une solution avec de meilleures performances. Aussi, c'est évidemment une requête imbriquée et donc sans doute pas adapté à vos besoins. Pourtant, c'est le mieux que je pouvais venir.
REJOINDRE
Il y a aussi le SQL REJOINDRE clause, qui pourrait être ce que vous cherchez:
Vous vous retrouvez avec ce résultat:
Je suppose que vous aurez à faire deux requêtes distinctes.
Une pour récupérer les produits, une pour récupérer les catégories de produits.
Ensuite utiliser tout langage de script (PHP) à atteindre ce que vous voulez avec les résultats (affichage, à l'exportation, quel que soit).