• 03-08-2022, 02:31:41
    #1
    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 ?
  • 03-08-2022, 02:54:22
    #2
    Sanırım union kullanabilirsin hocam.
  • 03-08-2022, 02:54:32
    #3
    sql'de type 0 ise kısmını anlamadım burada bir koşul mu istiyorsunuz ?
  • 03-08-2022, 02:57:01
    #4
    hocam
    ö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:57
    #5
    ONURERDGN adlı üyeden alıntı: mesajı görüntüle
    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 ?
    CoLLeR adlı üyeden alıntı: mesajı görüntüle
    Sanırım union kullanabilirsin hocam.

    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:46
    #6
    CoLLeR adlı üyeden alıntı: mesajı görüntüle
    Sanırım union kullanabilirsin hocam.
    Canozkan adlı üyeden alıntı: mesajı görüntüle
    sql'de type 0 ise kısmını anlamadım burada bir koşul mu istiyorsunuz ?
    Alkanmedya adlı üyeden alıntı: mesajı görüntüle
    hocam
    ö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.
    CoLLeR 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
    Herkese Teşekkürler sql sorgumu case when kullanarak yaptım. Yardımlarınız için teşekkür ederim.
    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;