Rumah  >  Soal Jawab  >  teks badan

Adakah mungkin untuk menggabungkan subquery dan bergabung dalam satu pernyataan MYSQL?

Soalan ini membuatkan saya keliru. Saya cuba menggunakan Sertai dan subquery dalam mysql tetapi saya terus mendapat ralat sintaks.

Pernyataan yang dimaksudkan ialah

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;

Saya cuba hanya menggunakan pertanyaan tanpa subkueri dan ia berfungsi dengan baik.

SELECT Customer.customer_id, Customer.name, Order.address FROM Customer  
INNER JOIN Order ON Customer.customer_id=Order.customer_id;

Mengalih keluar gabungan tetapi mengekalkan subkueri juga berfungsi.

SELECT Customer.customer_id, Customer.name, Order.address FROM Customer 
WHERE customer_id = (SELECT customer_id FROM Order WHERE customer_id = "625060836f7496e9fce3bbc6")

Hanya menggunakan subkueri dan bergabung bersama akan mengakibatkan ralat sintaks

Saya nampaknya tidak dapat mencari kesilapan.

Apa salah saya di sini.

Terima kasih terlebih dahulu

P粉647449444P粉647449444180 hari yang lalu355

membalas semua(1)saya akan balas

  • P粉894008490

    P粉8940084902024-04-05 00:17:29

    Rahsianya ialah tatabahasa yang betul!

    Apabila menanyakan berbilang jadual, sebaiknya gunakan alias untuk merujuknya dan literal rentetan juga harus dipisahkan dengan petikan tunggal dalam kes di mana berbilang jadual berkongsi nama lajur yang sama.

    Dalam contoh khusus ini, subkueri ialah berlebihan, cuma gunakan rentetan literal terus dalam klausa 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'
    );

    balas
    0
  • Batalbalas