Rumah > pangkalan data > tutorial mysql > MySQL TIDAK DALAM Ralat: Mengapa 'Operand Harus Mengandungi 1 Lajur'?

MySQL TIDAK DALAM Ralat: Mengapa 'Operand Harus Mengandungi 1 Lajur'?

Mary-Kate Olsen
Lepaskan: 2025-01-12 08:49:43
asal
248 orang telah melayarinya

MySQL NOT IN Error: Why

MySQL NOT IN query gagal: operand harus mengandungi 1 lajur

Apabila anda menemui ralat "operand harus mengandungi 1 lajur" dalam pertanyaan MySQL NOT IN, adalah penting untuk memahami puncanya.

Ralat ini berlaku kerana operan keadaan NOT IN mengandungi berbilang lajur:

<code class="language-sql">SELECT * from campaigns WHERE id not in (
    SELECT 
        e.id_campaign, d.name, d.frequency, d.country, d.referral, d.bid, d.status, COUNT(e.id) AS countcap  </code>
Salin selepas log masuk

Pengendali NOT IN memerlukan operannya menjadi satu lajur, manakala subkueri mengembalikan baris yang mengandungi berbilang lajur.

Penyelesaian:

Satu cara untuk menyelesaikan ralat ini ialah dengan mengekstrak lajur yang diperlukan daripada subkueri dan membandingkannya dengan lajur id pertanyaan luar:

<code class="language-sql">select *
from campaigns 
where id not in (
    select id_campaign from (
        select e.id_campaign as id_campaign, d.frequency, e.id
        from campaigns d left join served e on d.id = e.id_campaign
        where d.status = 'Active'
        group by e.id_campaign 
        having count(e.id) < d.frequency 
    ) as subquery
)</code>
Salin selepas log masuk

Memastikan penggunaan operator id_campaign yang betul dengan mengehadkan hasil subkueri kepada satu lajur NOT IN. Selain itu, kami menambah alias as subquery untuk subquery, yang diperlukan dalam beberapa versi MySQL. Ini meningkatkan kejelasan pertanyaan dan kebolehbacaan.

Atas ialah kandungan terperinci MySQL TIDAK DALAM Ralat: Mengapa 'Operand Harus Mengandungi 1 Lajur'?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan