Heim > Fragen und Antworten > Hauptteil
Diese Frage verwirrt mich. Ich versuche, Join und Unterabfragen in MySQL zu verwenden, erhalte jedoch ständig Syntaxfehler.
Die betreffende Aussage ist
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;
Ich habe versucht, die Abfrage einfach ohne Unterabfrage zu verwenden, und es hat gut funktioniert.
SELECT Customer.customer_id, Customer.name, Order.address FROM Customer INNER JOIN Order ON Customer.customer_id=Order.customer_id;
Das Entfernen des Joins, aber das Beibehalten der Unterabfrage funktioniert auch.
SELECT Customer.customer_id, Customer.name, Order.address FROM Customer WHERE customer_id = (SELECT customer_id FROM Order WHERE customer_id = "625060836f7496e9fce3bbc6")
Allein die gemeinsame Verwendung von Unterabfragen und Joins führt zu Syntaxfehlern
Ich kann den Fehler anscheinend nicht finden.
Was mache ich hier falsch?
Vielen Dank im Voraus
P粉8940084902024-04-05 00:17:29
秘密是正确的语法!
当查询多个表时,最好使用别名来引用它们,并且在多个表共享相同列名的情况下,字符串文字也应该用单引号分隔。
在这个具体示例中,子查询是多余的,只需在 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' );