Merhaba,
3 farklı tablom var.
Tablo_1
type | chose_id
0 | 1
1 | 1
Tablo_2
id | isim
1 | arif
Tablo_3
id | isim
1 | faruk
sql'de type 0 ise tablo_2 den tablo_1.chose_id = tablo_2.id
sql'de type 1 ise tablo_2 den tablo_1.chose_id = tablo_3.id
şeklinde bir inner join yapmam gerekiyor ama tek sorguda. Bunu nasıl yapabilirim ?
SQL sorgu hk. yardım
5
●208
- 03-08-2022, 02:57:01hocam
öncelikle kendiniz vermişsiniz dediğin gibi iki tablo arasında ilişkilendirme yapmanız gerekiyor bunu view kısmında yapıccaksınız daha sonra sorgu da
tablo1 T1 join tablo2 T2 on T1.id=T2.id yaparak tek sorgu şeklinde kullanabilirsin.
Kolay gelsin iyi çalışmalar. - 03-08-2022, 03:01:57ONURERDGN adlı üyeden alıntı: mesajı görüntüleCoLLeR adlı üyeden alıntı: mesajı görüntüle
Hatta kabaca aşağıdaki gibi bir sorgu kullanacaksınız. Kendinize göre düzenleyip sadeleştirmeyi unutmayın kolay gelsin.
Acele ile yazdım test etmedim kolay gelsin.
SELECT Tablo_1.*,Tablo_2.* FROM Tablo_1 INNER JOIN Tablo_2 ON Tablo_1.chose_id=Tablo_2.id WHERE Tablo_1.type=0 UNION SELECT Tablo_1.*,Tablo_3.* FROM Tablo_1 INNER JOIN Tablo_3 ON Tablo_1.chose_id=Tablo_3.id WHERE Tablo_1.type=1
- 03-08-2022, 23:40:46CoLLeR adlı üyeden alıntı: mesajı görüntüleCanozkan adlı üyeden alıntı: mesajı görüntüleAlkanmedya adlı üyeden alıntı: mesajı görüntüleHerkese Teşekkürler sql sorgumu case when kullanarak yaptım. Yardımlarınız için teşekkür ederim.CoLLeR adlı üyeden alıntı: mesajı görüntüle
SELECT t1.id, t1.sip_type, t1.quanty, t1.price, t1.odemeturu, t1.time, t1.chose, (case when t1.sip_type = 0 then t2.forms_name when t1.sip_type = 1 then t3.up_title end ) as title from pos_odenenler t1 left join forms t2 on t2.id = t1.chose left join users_products t3 on t3.id = t1.chose Where t1.mtid = $mtid and t1.userid = $uyeid;