• 06-02-2009, 11:41:00
    #1
    Üyeliği durduruldu
    select id from pktwebcore3_musicsinger where id NOT IN(select distinct(fldsinger) from pktwebcore3_musicsong);
    şeklinde bir sql im var.

    mantığıma göre şarkı tablosunda şarkıcıların listesini çektiği için şarkıcılardan bu kayıtlara dahil olmayanları getirmesi diğer tabirle
    "hiç şarkısı olmayan şarkcııları" getirmesi gerekiyor.

    ama şarkısı olmayan şarkıcı olduğunu bilmeme rağmen kayıt döndermiyor

    örnek deneme datası aşağıdaki gibi datada denedğimde çalışırken asil veritabanım olan ~500 000 kayıtlı veritabanımda çalışmıyor

    alternatif çözümler aklına gelen varmı acaba. ilgilenenlere şimdiden teşekkürler
  • 06-02-2009, 13:33:51
    #2
    Üyeliği durduruldu
    tam olarak sorgunun, hiç şarkısı olmayan şarkcıları getirmesini istiyorsun ?
  • 06-02-2009, 13:41:30
    #3
    Üyeliği durduruldu
    devturkeli adlı üyeden alıntı: mesajı görüntüle
    tam olarak sorgunun, hiç şarkısı olmayan şarkcıları getirmesini istiyorsun ?
    evet aynen öyle

    not in

    küçük veride işe yararken nedenini anlamadığım şekilde 500 000 gibi bir veride sonuç doğurmadi. tek tek php kodu ile çektiğimde şarkısı olmayan şarkıcı olduğu görebiliyorum
  • 06-02-2009, 13:56:36
    #4
    Üyeliği durduruldu
    şu şekilde denermisin,
    select id from pktwebcore3_musicsinger where pktwebcore3_musicsong = NULL);
  • 06-02-2009, 13:58:45
    #5
    Üyeliği durduruldu
    devturkeli adlı üyeden alıntı: mesajı görüntüle
    şu şekilde denermisin,
    select id from pktwebcore3_musicsinger where pktwebcore3_musicsong = NULL);
    olumsuz ikisi ayri tablo zaten

    pktwebcore3_musicsinger ve pktwebcore3_musicsong adinda iki tablom var.

    pktwebcore3_musicsong tablosunda fldsinger alani ile ilişkililer

    benim yazdigim ilk sql localde az bir veri ile calisiyor
    yalnzi serverda asil kayit olan 500 000 kayitla calismiyor
  • 10-02-2009, 21:04:23
    #6
    Bir de şu şekilde dener misiniz:
    SELECT a.id FROM `pktwebcore3_musicsinger` AS a LEFT JOIN pktwebcore3_musicsong AS b ON b.fldsinger=a.id GROUP BY a.id HAVING COUNT(b.id)=0
    Büyük veritabanında sorgunun farklı sonuçlar üretmesi sistem kaynaklarının yetersizliğine işaret ediyor. Mysql kullanıyorsaız aşağıdaki parametreleri arttırmayı deneyin:

    key_buffer
    read_buffer_size
    join_buffer_size
    read_rnd_buffer_size