• 24-11-2015, 13:46:13
    #1
    Üyeliği durduruldu
    Merhaba,

    gruplar,
    grup_uyeleri,
    kullanicilar,

    şeklinde 3 tablom var.

    gruplar: id | grup_adi | grup_aciklamasi
    grup_uyeleri: id | uye_id | grup_id
    kullanıcı tablosu standart bilgiler.
    şimdi ben 3 nolu gruba girince grup_uyeleri isimli tabloda üye id'lerini listeliyorum. bu id'lerden kullanicilar tablosunda tekrar sorgu yapmam gerek bunu tek sorguda yapmam mümkünmüdür?

    Edit: aşağıdaki sorguyu denedim çalışmadı
    SELECT * FROM users WHERE id IN(SELECT user_id FROM users_groups WHERE group_id='3')
  • 24-11-2015, 17:54:04
    #2
    UlusLab adlı üyeden alıntı: mesajı görüntüle
    Merhaba,

    gruplar,
    grup_uyeleri,
    kullanicilar,

    şeklinde 3 tablom var.

    gruplar: id | grup_adi | grup_aciklamasi
    grup_uyeleri: id | uye_id | grup_id
    kullanıcı tablosu standart bilgiler.
    şimdi ben 3 nolu gruba girince grup_uyeleri isimli tabloda üye id'lerini listeliyorum. bu id'lerden kullanicilar tablosunda tekrar sorgu yapmam gerek bunu tek sorguda yapmam mümkünmüdür?

    Edit: aşağıdaki sorguyu denedim çalışmadı
    SELECT * FROM users WHERE id IN(SELECT user_id FROM users_groups WHERE group_id='3')
    Join kullanabilirsiniz.

    select u.* from users u
    inner join user_groups ug on ug.group_id = u.grup_id
    where ug.group_id = 3
  • 26-11-2015, 15:05:31
    #3
    IN, EXISTS veya JOIN ile yapabilirsin.

    SELECT
    GU.*
    FROM GRUPLAR G
    JOIN GRUP_UYELERI GU ON G.ID=GU.GRUP_ID
    JOIN KULLANICILAR K ON GU.UYE_ID=K.ID
    WHERE G.ID=3