Re: 3 tablo arasındaki join işleminde koşul kullanmak

From: Uygar UZUNHASAN <uuzunhasan(at)nobelyazilim(dot)com>
To: pgsql-tr-genel(at)lists(dot)postgresql(dot)org
Subject: Re: 3 tablo arasındaki join işleminde koşul kullanmak
Date: 2024-09-20 13:32:25
Message-ID: 87f7f535-7e4b-455b-a7ad-13e49fc1c3b5@nobelyazilim.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-tr-genel

Merhaba
Doğrudan için şöyle birşey olabilir:

SELECT ...
CASE WHEN tb_tasit.id IS NOT NULL THEN 'TAŞIT' WHEN tb_depo.id IS NOT
NULL THEN 'DEPO' ELSE 'N/A' END as durum,
COALESCE(tb_tasit.tasit_plaka, tb_depo.depo_ad)
...
FROM tb_malzeme
LEFT JOIN (tb_tasit t on t.id <http://t.id>=m. bulundugu_yer_id AND
m.bulundugu_yer_tur_id=1)
LEFT JOIN (tb_depo d on d.id <http://d.id>=m. bulundugu_yer_id AND
m.bulundugu_yer_tur_id=2)

20.09.2024 16:22 tarihinde Java Notlarım yazdı:
> 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)
> );
>
>
>

--
Uygar UZUNHASAN
NOBEL YAZILIM
0532 506 6960

In response to

Responses

Browse pgsql-tr-genel by date

  From Date Subject
Next Message İbrahim Sarıçiçek 2024-09-20 13:36:52 Re: 3 tablo arasındaki join işleminde koşul kullanmak
Previous Message Java Notlarım 2024-09-20 13:22:19 3 tablo arasındaki join işleminde koşul kullanmak