Ungültiger Datentyp in Unterabfrage

27/03/2008 - 08:29 von Thomas Feichtner | Report spam
Hallo!
In einer Unterabfrage möchte ich mir Bilder aus der DB holen, jedoch darf ich das nicht machen. Gibt es hie eine Lösung?
Ich möchte folgendes machen. In der Tabelle1 stehen in der Spalte t_k bzw. K_g die Ids der Bilder, die in der Tabelle2
gespeichert sind. Wenn in der spalte t_g ein Wert steht, dann soll diese Bild angezeigt werden. Steht in der Spalte t_g kein
wert, dann soll das Bild von der Spalte t_k angezeigt werden. Wenn hier auch kein Wert drinnen ist, dann soll nichts angezeigt
werden.

Und so sehen die Tabellen (vereinfacht) aus.

Tabelle1
idnr autoinc
t_k int
t_g int

Tabelle2
idnr autoinc
b_data image

select idnr, t_g, t_k
case coalesce(t_g, 0)
when 0 then
case coalesce(t_g, 0)
when 0 then null
else
(select b_data from tabelle2 t2 where t2.idnr = t1.t_k)
end
else
(select b_data from tabelle2 t2 where t2.idnr = t1.t_g)
end AS bild
from Tabelle1 t1

mfg

Thomas Feichtner
 

Lesen sie die antworten

#1 Thomas Feichtner
27/03/2008 - 09:03 | Warnen spam
In article , Thomas Feichtner wrote:
select idnr, t_g, t_k
case coalesce(t_g, 0)
when 0 then
case coalesce(t_g, 0)
when 0 then null
else
(select b_data from tabelle2 t2 where t2.idnr = t1.t_k)
end
else
(select b_data from tabelle2 t2 where t2.idnr = t1.t_g)
end AS bild
from Tabelle1 t1




Ich habe etwas versucht und es funktioniert auch. Wie optimal ist nun
meine neue Abfrage?

select t.idnr, t_g, t_k,
case
when coalesce(t_g, 0) = 0 then
case coalesce(t_k, 0)
when 0 then null
else bk.b_data
end
else bg.b_data
end AS bild
from tabelle1 t
left join tabelle2 bk on t_k = bk.idnr
left join tabelle2 bg on t_g = bg.idnr

Ähnliche fragen