Maison > Questions et réponses > le corps du texte
Cette question me laisse perplexe. J'essaie d'utiliser Join et sous-requête dans MySQL mais je continue à recevoir des erreurs de syntaxe.
La déclaration en question est
SELECT Customer.customer_id, Customer.name, Order.address FROM Customer WHERE customer_id = (SELECT customer_id FROM Order WHERE customer_id = "625060836f7496e9fce3bbc6") INNER JOIN Order ON Customer.customer_id=Order.customer_id;
J'ai simplement essayé d'utiliser une requête sans sous-requête et cela a bien fonctionné.
SELECT Customer.customer_id, Customer.name, Order.address FROM Customer INNER JOIN Order ON Customer.customer_id=Order.customer_id;
Supprimer la jointure mais conserver la sous-requête fonctionne également.
SELECT Customer.customer_id, Customer.name, Order.address FROM Customer WHERE customer_id = (SELECT customer_id FROM Order WHERE customer_id = "625060836f7496e9fce3bbc6")
Le simple fait d'utiliser des sous-requêtes et des jointures entraînera des erreurs de syntaxe
Je n'arrive pas à trouver l'erreur.
Qu'est-ce que je fais de mal ici.
Merci d'avance
P粉8940084902024-04-05 00:17:29
Le secret est une grammaire correcte !
Lors de l'interrogation de plusieurs tables, il est préférable d'utiliser des alias pour les référencer, et les chaînes littérales doivent également être séparées par des guillemets simples dans les cas où plusieurs tables partagent le même nom de colonne.
Dans cet exemple spécifique, la sous-requête est redondante, utilisez simplement la chaîne littérale directement dans la clause Where.
SELECT c.customer_id, c.name, o.address FROM Customer c JOIN Order o ON c.customer_id = o.customer_id WHERE c.customer_id = ( SELECT customer_id FROM Order WHERE customer_id = '625060836f7496e9fce3bbc6' );