Bookmarks

Yahoo Gmail Google Facebook Delicious Twitter Reddit Stumpleupon Myspace Digg

Search queries

Catastrophic failure Unexpected method call sequence. 0x8000ffff (-2147418113)., ksh lock a file, [unixODBC][Driver Manager]Driver's SQLAllocHandle on SQL_HANDLE_DBC failed, sed: -e expression #1, char 1: unterminated address regex, procmail + change subject, w2ksp4.exe download, /proc/kallsyms format, sqldatasource dal, wwwxxxenden, convert raid5 to raid 10 mdadm

Links

XODOX
Impressum

#1: zwei Tabellen

Posted on 2008-01-31 10:28:13 by letters

Hallo,

ich habe zwei Tabellen mit jeweils identischen Feldern. Es soll nun
abgefragt werden, ob ein bestimmter Satz Daten sich in einer dieser beiden
tabellen befindet. Ich habe es so versucht:

SELECT k.id,s.id FROM mitarbeiter as k, stammdatenmitarbeiter as s WHERE
(k.name ="Test1" AND k.vorname = "Test2" AND k.mail = "info@test.de") OR
(s.name ="Test1" AND s.vorname = "Test2" AND s.mail = "info@test.de")

in der Tabelle stammdatenmitarbeiter als s gibt es genau diesen datensatz.

Das Ergebnis ist allerings leer. Warum? Durch das OR müsste es doch eine
Ausgabe geben.
Wenn ich nur in s suche, wird ein Datensatz gefunden.

Wenn ich eine UNION verwende klappt es wieder, aber wieso nicht im obigen
Fall?

(SELECT id FROM mitarbeiter WHERE name =Test1 AND vorname = Test2 AND mail
= "info@test.de") UNION (SELECT id FROM stammdatenmitarbeiter WHERE name
=Test1 AND vorname = Test2 AND mail = "info@test.de")

Das klappt.

Mathias

Report this message

#2: Re: zwei Tabellen

Posted on 2008-01-31 10:34:24 by Michael Ziegler

Mathias Fiedler wrote:
> ich habe zwei Tabellen mit jeweils identischen Feldern.

Das riecht stark nach suboptimalem Design. Kannst du nicht ein Feld
ist_stammdatenmitarbeiter einführen und beide Tabellen kombinieren? Dann
hättest du solche Probleme nicht mehr.

> Wenn ich eine UNION verwende klappt es wieder, aber wieso nicht im obigen
> Fall?

Weil ein UNION genau das macht was du eigentlich willst: Alle DS der
ersten Tabelle gefolgt von allen der 2. Tabelle ausgeben.

Der erste Code joined beide Tabellen, was ein irrsinniger Aufwand ist.
Du solltest dein Design dringend überarbeiten.

M

Report this message