J'ai une table qui utilise 3 clés étrangères dans d'autres tables. Lorsque j'effectue une jointure gauche, je reçois des colonnes en double. MySQL dit que le donné: p> mon instruction de requête: p> mon objectif est d'obtenir une ligne de toutes les colonnes de la jointure sans colonnes en double. J'utilise le connecteur MySQL C ++ pour envoyer les instructions SQL et récupérer des ensembles de résultats. Je crois que le connecteur C ++ a des problèmes avec des noms de colonne en double. P> Quelle est la syntaxe de l'état SQL que je devrais utiliser? P> Référence à MySQL Join Syntax < / p> p> en utilisant la syntaxe code> réduira les colonnes en double, mais il n'y a pas d'exemples pour plusieurs clés.
4 Réponses :
Vous sélectionnez * à partir de la table assurée combinée. Limite que * à toutes les colonnes que vous voulez garder. P>
Lorsque vous regardez dans les données de poste de MySQL, j'ai beaucoup de colonnes. Cela peut être une douleur si je dois énumérer toutes les colonnes sauf les duplicats. Existe-t-il un qualificatif SQL qui me laissera répertorier toutes les colonnes, à l'exception de ceux que je spécifie?
Comme il ressemble à la plupart des tables, vous vous joignez à quelques colonnes, à l'exception du premier, que diriez-vous:
SELECT (* - foo) FROM table
Bien que l'énumération de chaque colonne valide soit possible, je pense que c'est beaucoup de travail pour mon programme et ajoute également à la longueur de l'instruction SQL qui est envoyée à la base de données. Voir la réponse de Danny ci-dessous.
Je crois que ce qui suit devrait fonctionner:
Cela fonctionne, sauf lorsque la table n'existe pas. Donc, j'ai mis des chèques pour cela. En outre, cela suppose que les tables ont des noms de colonnes uniques, à l'exception des champs de clé étrangère. Heureusement, c'est ce que j'ai. Merci beaucoup! B>
Essayez la requête suivante:
SELECT name,ac,relation_name FROM table1 LEFT JOIN table2 USING (ID_Prep_Text) LEFT JOIN table3 USING (ID_Picture);