From: | Ender Uygun <enderuygun(at)hotmail(dot)com> |
---|---|
To: | Java Notlarım <javanotlarim(at)gmail(dot)com> |
Cc: | "pgsql-tr-genel(at)postgresql(dot)org" <pgsql-tr-genel(at)postgresql(dot)org> |
Subject: | Re: 3 tablo arasındaki join işleminde koşul kullanmak |
Date: | 2024-09-21 06:34:42 |
Message-ID: | PAXP192MB158430440A8F8AAF6DF34062C76D2@PAXP192MB1584.EURP192.PROD.OUTLOOK.COM |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-tr-genel |
Selamlar,
Bunu istiyor olabilir misiniz?
select m.malzeme_ad,
case when m.bulundugu_yer_turu_id=1 then t.tasit_plaka
when m.bulundugu_yer_turu_id=2 then d.depo_ad
else ‘malzeme_bulunamadi’ end as malzeme_detay
from tb_malzeme m
LEFT JOIN tb_tasit t on t.id<http://t.id/>=m. bulundugu_yer_id
LEFT JOIN tb_depo d on d.id<http://d.id/>=m. bulundugu_yer_id
Sent from my iPhone.
On 20 Sep 2024, at 15:22, Java Notlarım <javanotlarim(at)gmail(dot)com> wrote:
Merhaba. Öncelikle iyi çalışmalar dilerim.
3 ayrı tablom var;
* Malzeme tablosu
* Taşıt Tablosu
* Depo Tablosu.
Bir malzeme taşıtta veya depoda olabilir. Malzeme tablosunda bunu belirtmek için "bulundugu_yer_tur_id" alanı var.
Örneğin;
* malzeme, taşıtta ise yani bulundugu_yer_turu_id=1 ise "tb_tasit" tablosundaki "tasit_plaka" değeri,
* malzeme, depoda ise yani bulundugu_yer_turu_id=2 ise "tb_depo" tablosundaki "depo_ad" değeri
alias bir alana çekmek istiyorum.
select m.malzeme_ad, ( bulunduğu yer ("taşıt plakası" veya "depo adı" verisinin listeleneceği ortak alias bir alan) from tb_malzeme m
LEFT JOIN tb_tasit t on t.id<http://t.id>=m. bulundugu_yer_id
LEFT JOIN tb_depo d on d.id<http://d.id>=m. bulundugu_yer_id
Yukarıdaki sorguya if else yapısını eklemem gerektiğini düşünüyorum; yani
if m.bulundugu_yer_tur_id=1 then LEFT JOIN tb_tasit t on t.id<http://t.id>=m. bulundugu_yer_id
or
if m.bulundugu_yer_tur_id=2 then LEFT JOIN tb_depo d on d.id<http://d.id>=m. bulundugu_yer_id
ama başaramadım.
Bu konuda yardımcı olursanız çok sevinirim.
Malzeme tablosu
CREATE TABLE public.tb_malzeme
(
id smallserial NOT NULL,
malzeme_ad text,
bulundugu_yer_turu_id smallint,
bulundugu_yer_id smallint,
PRIMARY KEY (id)
);
Taşıt Tablosu
CREATE TABLE public.tb_tasit
(
id smallserial NOT NULL,
tasit_plaka text,
PRIMARY KEY (id)
);
Depo tablosu
CREATE TABLE public.tb_depo
(
id smallserial NOT NULL,
depo_ad text,
PRIMARY KEY (id)
);
From | Date | Subject | |
---|---|---|---|
Next Message | Java Notlarım | 2024-09-23 08:00:33 | Re: 3 tablo arasındaki join işleminde koşul kullanmak |
Previous Message | N. Can KIRIK | 2024-09-20 19:01:15 | Re: 3 tablo arasındaki join işleminde koşul kullanmak |