-3
votes

Mysql Select * où colonne = "valeur" de 2 tables

EDIT2:

J'aime obtenir toutes les valeurs de 2 tables où la valeur de Highlight = '1' Highligh est une colonne présente dans les deux tables. Les deux tables ont une structure unique.

Je souhaite obtenir toutes les données des deux tables où la surbrillance = '1' xxx

"Les deux donnent moi L'erreur suivante: "colonne 'Might'" dans la clause ambiguë "

J'ai cherché beaucoup et trouvé beaucoup sur cette erreur, mais seulement des causes de jointure compliquées qui sont différentes que ma cause. Je sais que la colonne est dans les deux tables, mais je veux les résultats de ces 2 requêtes de table jointes.

EDIT1: Comme demandé la structure des deux tables: xxx


3 commentaires

Qualifier les noms de colonne qui existent dans les deux tables.


Si un nom de colonne apparaît dans plusieurs table dans une requête, vous devez les qualifier avec le nom de la table ou un alias comme peinture.Lighlighlight et instaview.highlight Modifier it et fournir un Exemple de reproductible minimal , c'est-à-dire le schéma comme Créer des instructions Créer des instructions, des exemples de données comme Insérer des instructions et le résultat souhaité avec cet exemple de données un texte tabulaire. N'utilisez pas d'écran ni d'autres images pour cela.


Je vois que ma question est très minuse. Je suis nouveau à MySQL. Je n'avais pas besoin d'utiliser Join, mais j'avais besoin d'union. Problème résolu maintenant.


3 Réponses :


1
votes

Vous devez dire à partir de quelle table, vous interrogez la surbrillance.

Pouvez-vous essayer comme ça? p>

SELECT * FROM painting JOIN instaview ON painting.highlight='1'


1 commentaires

Cela a rejoint tous les résultats des deux tables. Ce que je voulais, ce ne sont que les lignes de chaque 2 tables où la surbrillance = '1'. Je ne connaissais pas les noms de colonnes «qualifiez» comme je suis très nouveau à MySQL. Mais j'ai trouvé la partie manquante: Union!



0
votes

Je ne connaissais pas le "admissif", mais cela a rejoint mes données dans plus de colonnes, je voulais juste les résultats des deux tables. Après plus de recherches, j'ai trouvé le mot-clé: Union

SELECT * FROM painting WHERE highlight=1 
UNION
SELECT * FROM instaview WHERE highlight=1


0 commentaires

0
votes

Si vous voulez Highlight = '1' dans les deux tables et que vous ne voulez pas spécifier une table, vous pouvez utiliser xxx

les champs utilisés dans L'utilisation est "combinée" et la qualification de nom de table n'est pas nécessaire.

ps. C'est "mauvaise pratique" - spécifier des nappes pour tous les champs lorsqu'il y a plusieurs table de la source de requête entière (même lorsque certains noms de terrain sont uniques sur la source de données - il est présent dans une table uniquement). >


0 commentaires