Heim > Datenbank > MySQL-Tutorial > MySQL NOT IN-Fehler: Warum sollte „Operand 1 Spalte enthalten'?

MySQL NOT IN-Fehler: Warum sollte „Operand 1 Spalte enthalten'?

Mary-Kate Olsen
Freigeben: 2025-01-12 08:49:43
Original
249 Leute haben es durchsucht

MySQL NOT IN Error: Why

MySQL NOT IN-Abfrage fehlgeschlagen: Operand sollte 1 Spalte enthalten

Wenn Sie in einer MySQL NOT IN-Abfrage auf den Fehler „Operand sollte 1 Spalte enthalten“ stoßen, ist es wichtig, die Grundursache zu verstehen.

Dieser Fehler tritt auf, weil der Operand der NOT IN-Bedingung mehrere Spalten enthält:

<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>
Nach dem Login kopieren

Der NOT IN-Operator erfordert, dass sein Operand eine einzelne Spalte ist, während die Unterabfrage Zeilen zurückgibt, die mehrere Spalten enthalten.

Lösung:

Eine Möglichkeit, diesen Fehler zu beheben, besteht darin, die erforderlichen Spalten aus der Unterabfrage zu extrahieren und sie mit der ID-Spalte der äußeren Abfrage zu vergleichen:

<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>
Nach dem Login kopieren

Stellt die korrekte Verwendung des id_campaign-Operators sicher, indem die Unterabfrageergebnisse auf eine einzelne Spalte NOT IN beschränkt werden. Zusätzlich haben wir einen Alias ​​as subquery für die Unterabfrage hinzugefügt, der in einigen MySQL-Versionen notwendig ist. Dies verbessert die Klarheit und Lesbarkeit der Abfrage.

Das obige ist der detaillierte Inhalt vonMySQL NOT IN-Fehler: Warum sollte „Operand 1 Spalte enthalten'?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage