2009-10-29 10 views
0

J'ai deux tables, l'une est une liste de magasins et d'attributs, la seconde est une liste d'allocationsa basée sur ces attributs. Le tableau d'attribut (stores_metadata)Trier par dans mysql en utilisant la seconde table

| key | store_key | field | value 
| 1 | 1   | size | Large 
| 2 | 1   | dist | Midlands 
| 3 | 2   | size | Medium 
| 4 | 3   | dist | South 

La table d'allocation (allocation)

| key | ticket_key | field | value | count 
| 1 | 1   | size | Large | 10 
| 2 | 1   | size | Medium| 5 

J'ai réussi à obtenir les allocations de travail en utilisant le code:

SELECT store_key, quantity FROM 
allocation 

INNER JOIN store_metadata 
    ON allocation.`field` = store_metadata.`field` 
    AND allocation.`value` = store_metadata.`value` 

Ce retourne un liste des magasins et combien d'articles ils devraient recevoir, ce que j'ai maintenant besoin de faire pour commander les magasins par l'attribut de distribution.

Toute aide serait grandement appréciée.

+0

Dans quelle table ce champ existe-t-il? –

+0

La distribution est une entrée dans la colonne champ de la table stores_metadata. –

+0

Désolé, la distribution est dans la base de données comme dist. –

Répondre

0

La question n'est pas très bien posée.

Pour effectuer une commande par n'importe quelle colonne de votre jeu de résultats, ajoutez ORDER BY [column] à la fin de la requête. Par exemple.

SELECT store_key, quantity FROM 
allocation 

INNER JOIN store_metadata 
    ON allocation.`field` = store_metadata.`field` 
    AND allocation.`value` = store_metadata.`value` 
    ORDER BY allocation.`field`; 
+0

Je ne veux pas trier par une colonne, je veux trier par la valeur d'un attribut dans la table de métadonnées. –

Questions connexes