suchen

Heim  >  Fragen und Antworten  >  Hauptteil

Ist es möglich, Unterabfragen und Joins in einer einzigen MYSQL-Anweisung zu kombinieren?

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粉647449444P粉647449444228 Tage vor422

Antworte allen(1)Ich werde antworten

  • P粉894008490

    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'
    );

    Antwort
    0
  • StornierenAntwort