2011-04-13 8 views
0

dire que j'ai le tableau suivant 'ordres' MySql:colonnes fusion de MySQL

id|car|car_qty|speakers|speakers_qty 
1 | 2 | 15 | 5 | 16 
2 | 2 | 19 | 5 | 40 

Quelle est la requête pour obtenir ce qui suit:

product|qty 
    2 | 15 
    2 | 19 
    5 | 16 
    5 | 40 

SANS en utilisant UNION?

Merci!

+0

Cela ne ne fait rien de clair. Tu devrais expliquer. Quelles colonnes souhaitez-vous fusionner? –

+0

Shakti - voiture et haut-parleurs sont id des produits, et _qty sont la quantité pour chacun d'eux. Je souhaite voir un détail des produits et de leur quantité. désolé si je n'étais pas clair. – Israel

+0

il me semble que votre tabledef n'est pas approprié. Pourquoi avez-vous créé des enceintes et des enceintes_qty au lieu d'utiliser une colonne (0 ou 1) vous indiquant si une rangée était une voiture ou un haut-parleur? De cette façon, vous pourriez avoir ajouté des éléments (et les sélectionner) sans aucun problème. – Marco

Répondre

1

Faites une union ALL de la même table ... Juste besoin de vous assurer que les noms de colonnes et les types de données sont les mêmes ...

select 
     car as product, 
     car_qty as qty 
    from 
     orders 
union all 
select 
     speakers as product, 
     speakers_qty as qty 
    from 
     orders; 
+0

Désolé j'ai oublié de mentionner que je suis à la recherche d'une requête SANS UNION. fixé la question. Je vous remercie! – Israel

2

Essayez ceci:

SELECT car product,car_qty qty FROM orders 
UNION 
SELECT speakers product,speakers_qty qty FROM orders 
+0

Désolé j'ai oublié de mentionner que je suis à la recherche d'une requête SANS UNION. fixé la question. Je vous remercie! – Israel

+0

@Israel: pourquoi ne pas utiliser UNION? Y a-t-il une raison particulière? – Marco

+0

Oui, la raison en est qu'à la fin, ce sera une requête beaucoup plus compliquée et dynamique qui sera générée en utilisant PHP, et il me semble que ce sera plus logique d'utiliser cette approche comme base plutôt que plusieurs UNIONs . Je pourrais me tromper :) – Israel