2009-02-05 5 views
0

J'essaie de créer une vue pour une union de 2 instructions de sélection que j'ai créées.MySql Union n'est pas exécuté dans une vue

L'UNION fonctionne bien lorsqu'il est exécuté individuellement

Mais le problème est que la 1ère partie de l'Union est exécuté quand je se suis exécutais comme une vue.

La requête J'utilise est comme ci-dessous

SELECT DISTINCT products.pid AS id, 
       products.pname AS name, 
       products.p_desc AS description, 
       products.p_loc AS location, 
       products.p_uid AS userid, 
       products.isaproduct AS whatisit 
      FROM products 

      UNION 
      SELECT DISTINCT services.s_id AS id, 
       services.s_name AS name, 
       services.s_desc AS description, 
       services.s_uid AS userid, 
       services.s_location AS location, 
       services.isaservice AS whatisit 
      FROM services 
      WHERE services.s_name 

Les travaux ci-dessus bien quand je l'exécute séparément. Mais quand je l'utilise comme vue, cela ne me donne pas les résultats de la partie services.

Quelqu'un pourrait-il m'aider s'il vous plaît?

Répondre

1

De the union description:

Les noms de colonnes de la première instruction SELECT sont utilisés comme les noms de colonnes pour les résultats retournés. Les colonnes sélectionnées répertoriées dans les positions correspondantes de chaque instruction SELECT doivent avoir le même type de données. (Par exemple, la première colonne sélectionnée par la première instruction doit avoir le même type que la première colonne sélectionnée par les autres instructions.)

Cela signifie que l'ID utilisateur et l'emplacement sont mélangés dans la deuxième instruction de sélection.