2016-01-20 3 views
0

A l'instant j'ai deux requêtes distinctes.mySQL, définissant un champ comme la valeur d'un autre champ

Select `entity_id`,`parent_id`,`name`,`meta_description` 
    from catalog_category_flat_store_1 
    where level = 3 
    and is_active = 1 
    order by parent_id asc, position asc 

Ce qui me donne une sortie comme ceci:

+-----------+-----------+------------+----------+ 
| entity_id | parent_id | Name  | desc  | 
+-----------+-----------+------------+----------+ 
|  1 |  0 |  test | text  | 
+-----------+-----------+------------+----------+ 

J'ai une requête séparée comme celui-ci,

Select `entity_id`,`parent_id`,`name`,`meta_description` 
     from catalog_category_flat_store_1 
     where level = 2 
     and is_active = 1 
     order by parent_id asc, position asc 

Ce qui me donne une sortie comme ceci:

+-----------+-----------+------------+----------+ 
    | entity_id | parent_id | Name  | desc  | 
    +-----------+-----------+------------+----------+ 
    |  2 |  1 |  test2 | text  | 
    +-----------+-----------+------------+----------+ 

J'ai besoin de combiner ces e deux requêtes, de sorte que la sortie ressemble à ceci:

+-----------+-----------+------------+----------+ 
    | entity_id | parent_nm | Name  | desc  | 
    +-----------+-----------+------------+----------+ 
    |  2 |  test |  test2 | text  | 
    +-----------+-----------+------------+----------+ 

J'ai essayé de créer une requête sous pour le faire, mais je ne pas avoir la joie, peut-on suggérer comment la requête pourrait être structuré. Merci

Répondre

0

Est-ce que cela fait ce que vous voulez? Plutôt qu'une sous-requête, joignez la table à elle-même - vous devez utiliser des alias pour faire la distinction entre les deux instances de la table. Vous devrez peut-être modifier la «commande par» pour obtenir la commande dont vous avez besoin - comme votre exemple avait seulement 1 résultat, je devine.

Select a.`entity_id`,b.`Name` as `parent_nm`,a.`name`,a.`meta_description` 
from catalog_category_flat_store_1 a 
join catalog_category_flat_store_1 b on a.`parent_id`=b.`entity_id` and b.`level`=3 and b.`is_active`=1 
where a.level = 2 
and a.is_active = 1 
order by a.parent_id asc, b.parent_id asc, a.position asc, b.position asc