Jak dodac zapytanie SELECT w warunku CASE ?

0

Mam tabelke o nazwie dziobas

id rodzaj
1 1
2 3

Jak teraz dodac zapytanie w stylu

SELECT *, CASE WHEN rodzaj = 1 THEN select * from druga_tabelka where id = rodzaj ELSE inny select END FROM dziobas 

Da sie tak zrobic w ogole ?

0

Tak, da się. Normalnie walisz tam subquery. Aczkolwiek takie zapytanie to kijowy pomysł.

0

daj może rzeczywiste tabele i co chcesz osiągnąć

0

Sam pomysł robienia tego w case jest bez sensu, pójdź raczej w cos takiego

SELECT
     *
    ,ISNULL(KOLUMNADLARODZAJ1,KOLUMNADLARODZAJROZNEGO1)
FROM 
    dziobas 
    LEFT JOIN (Select KOLUMNADLARODZAJ1 FROM DRUGA_TABELA WHERE ID = 1) T2 ON T2.ID = DZIOBAS.RODZAJ
    LEFT JOIN (SELECT KOLUMNADLARODZAJROZNEGO1 FROM INNATABELA) TI ON TI.ID=DZIOBAS.IS
0

Hmm wiem do czego zmierzasz. Ale ja mam tabele w ktorej mam RODZAJ i jest tam albo 1 albo 2
Jezeli jest tam 1 to mam wybrac cos z innej tabeli
a jezeli jest 2 to mam wybrac cos z jeszcze innej tabeli
Chodzi o to ze w tych innych tabelach nie ma tego RODZAJu
czyli musze jakos rozroznic ten RODZAJ i w zaleznosci od niego
dolaczac subquery albo z jednej albo z drugiej tabeli

0

Możesz dać subquery otaczajac w nawias, ale mam wrażenie ze kombinujesz w złym kierunku. Pokaz przykład danych i oczekiwany efekt a będzie można pomóc

0

Tabelka ORDERS

id | id_przedmiot | rodzaj | id_users
---------------- | -------------------
1 | 100 | 1 | 1
2 | 123 | 2 | 4
3 | 153 | 2 | 1

Tabelka USERS

id | imie | nazwisko
---------------- | -------------------
1 | Maciek | Jackowski
2 | Asia | Michalska

Tabela przedmiot

id | nazwa | id_users_owner
---------------- | -------------------
153 | Miska | 2
1233 | Stołek | 6

Zapytanie chcialem takie

WYBIERZ id, rodzaj z tabeli ORDERS SPRAWDZ rodzaj jezeli rodzaj jest = 1 TO wybierz nazwe uzytkownika z tabeli USERS a jesli rodzja = 2 to wybierz nazwe uzytkownika z tabeli USERS ale jego id ma byc z tabeli PRZEDMIOT

wynik ma byc taki:

id orders | rodzaj | imie
---------------- | -------------------
1| 1| Maciek
1| 2| Aska

W pierwszym Maciek bo rodzaj byl = 1 to bralem id usera z tabeli users
W drugim wyszla Aska bo byl rodzja = 2 to bralem uzytkownika jako wlasciciela przedmotu

1
select o.id id_orders, o.rodzaj, case o.rodzaj when 1 then u.imie when 2 then up.imie end imie from orders o left join users u on (o.id_users=u.id) left join przedmiot p on (o.id_przedmiot=p.id) left join users up on (p.id_users=up.id)

1 użytkowników online, w tym zalogowanych: 0, gości: 1