IN (SUBQUERY)

Hallo,

ich moechte in einem SQL-Statement folgendes Auslesen:
Alle Firmen, die mit einem bestimmten Buchstaben beginnen und nicht in
der Kategorie '0' sind. Die Daten sind in 2 Tabellen gespeichert. Eine
enthaelt die Firmen mit den Namen und eine die Firmen-Kategorien-
Zuordnung.
Ich habe nun folgenden Query:

SELECT ID FROM Firmen WHERE (Name LIKE 'a%') AND (ID IN (SELECT
Firm_ID AS ID FROM Firm2Kateg WHERE Kateg_ID<>0))

--> Fehlermeldung: "#1064 - You have an error in your SQL syntax.
Check the manual that corresponds to your MySQL server version for the
right syntax to use near 'SELECT Firm_ID AS ID FROM `Firm2Kateg` WHERE
Kateg_ID<>0)"

Wenn ich denn Teil-Query, der innerhalb der Klammern steht (nach IN),
fuer sich ausfuehre bekomme ich jedoch das richtige Ergebnis
geliefert, alle Firmen-IDs die nicht in Kategorie 0 stehen.
Da die Fehlermeldung nicht mehr hergibt bin ich nun am Ende meines
Lateins.

Was ist nun eigentlich falsch an dem Query?
Habe ich irgendetwas wichtiges uebersehen?

Vielen Dank schon mal fuer die Hilfe!

MfG, Ralf...
Ralf Weber [ Do, 05 April 2007 10:59 ] [ ID #1679517 ]

Re: IN (SUBQUERY)

Andreas
--
Andreas Kretschmer
Linux - weil ich es mir wert bin!
GnuPG-ID 0x3FFF606C http://wwwkeys.de.pgp.net
Deutsche PostgreSQL User Group: http://pgug.de
Andreas Kretschmer [ Do, 05 April 2007 11:16 ] [ ID #1679518 ]

Re: IN (SUBQUERY)

Hallo Andreas,

danke fuer die schnelle Antwort!

> Schnellschuß: alte Version, Subselects gehen erst ab irgendwann, Deine
> Version ist älter.

Du liegst richtig, ab Version 4.1 um genau zu sein - mein Server
verwendet 4.0.27.

Okay, dank dir habe ich auch gleich die passende Seite gefunden zum
Umschreiben eines Subquery fuer aeltere Versionen von MySQL.

Grueße aus Sachsen...
Ralf Weber [ Do, 05 April 2007 11:46 ] [ ID #1679519 ]

Re: IN (SUBQUERY)

Andreas
--
Andreas Kretschmer
Linux - weil ich es mir wert bin!
GnuPG-ID 0x3FFF606C http://wwwkeys.de.pgp.net
Deutsche PostgreSQL User Group: http://pgug.de
Andreas Kretschmer [ Do, 05 April 2007 11:52 ] [ ID #1679520 ]
Datenbanken » de.comp.datenbanken.mysql » IN (SUBQUERY)

Vorheriges Thema: Auslesen, in welchem Feld der Treffer steckt
Nächstes Thema: CREATE TABLE