La création de MySQL Vue à l'aide de l'UNION
Je suis en train de créer une vue pour la requête suivante.
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
Mais pas en mesure de le faire. Je suis de l'utilisation de MySql query browser. L'erreur que je reçois est:
Vue ne peut être créé à partir d'un actif jeu de résultats de la commande SELECT
Quelqu'un peut m'aider avec ça?
OriginalL'auteur | 2009-02-05
Vous devez vous connecter pour publier un commentaire.
J'ai essayé et ça a fonctionné!
Merci à tous 🙂
OriginalL'auteur
Vous pourriez vouloir pour passer la commande du nom d'utilisateur et l'emplacement dans la deuxième sélection. Les noms de colonne doit correspondre à 1 à 1 dans tous les sélectionne de l'union.
EDIT : Pour le navigateur de requêtes , comme cette points "Pour créer une vue à partir d'une requête, vous devez avoir exécuté la requête avec succès. Pour être plus précis, la vue est créée à partir de la dernière requête exécutée avec succès, pas forcément de la requête en cours dans la Zone Requête"
si vous avez besoin pour l'exécution de la requête avant de créer l'afficher dans le navigateur de requêtes.
L'erreur est à partir de la requête du navigateur et pas mysql.
êtes-vous en essayant ces suggestions? Je n'ai pas besoin d'exécuter la requête. J'ai réalisé une autre requête, puis à l'exécuter "CRÉER une VUE ..." et il a bien fonctionné.
non, je ne suis pas. Je n'ai pas accès à mysql. Je suis juste essayer d'aider.
Votre lien vous suggère peut-être à raison - je n'ai pas le navigateur de requêtes, mais il fonctionne bien en sqlyog.
OriginalL'auteur Learning
Vous avez différents types d'être réunies dans la même colonne. (Les noms peuvent être différents, mais les types doivent être les mêmes, ou au moins de l'auto-moulage.) Mais comme @les points d'Apprentissage, il semble que vous avez tordu la colonne de sélection des énumérations.
Juste au cas où, la syntaxe correcte (ce qui a fonctionné pour moi) est
Le premier. Essayez-le et voyez (ce qui est ce que j'ai fait.)
L'UNION fonctionne bien.. Mais j'ai quand j'essaie de créer une vue pour cette UNION. J'obtiens l'erreur suivante: Un point de vue ne peut être créé à partir d'un actif resultset de SÉLECTIONNER la commande que j'amd utilisation de MySql query browser
ah .. ok. Sybase est moins indulgent. Merci pour la clarification.
Hmmm ... j'ai pu créer l'union. En fait, je pourrais le créer avec un mélange de types de données. J'ai googlé pour vos msg d'erreur et n'a rien trouvé, trop.
OriginalL'auteur dkretz
Juste une petite remarque à propos de l'UNION. UNION renvoie uniquement les valeurs distinctes de votre jeu de résultats. Donc, il n'est pas nécessaire d'utiliser SELECT DISTINCT combiné avec un SYNDICAT. Probablement mieux pour la performance de ne pas utiliser DISTINCTES.
Plus d'info sur SYNDICAT peut être trouvé ici: SQL Opérateur UNION
OriginalL'auteur
Le message d'erreur est "QueryBrowser.pas", partie de mysql-gui-outils.
Il est déclenché par un) de ne pas avoir un ensemble de résultats actif et b), la requête ayant le mauvais type.
Ne le retrait du "DISTINCT" faire une différence? En tout cas, c'est un bug dans QueryBrowser, plutôt que MySQL. La création de la vue directement dans MySQL devrait suffire comme un travail autour de.
OriginalL'auteur Tomalak