Adakah mungkin untuk menggabungkan subquery dan bergabung dalam satu pernyataan MYSQL?
P粉647449444
P粉647449444 2024-04-04 13:00:10
0
1
431

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粉647449444
P粉647449444

membalas semua(1)
P粉894008490

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'
);
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan