Projeyi yazarken bir noktada takıldım ve yardımlarınıza ihtiyacım var. Yardımcı olanlara şimdiden çok teşekkür ederim.
Mevzu şu şekildedir;
A tablom var ve burada x sütunumun 4,5,6 şeklinde tutuluyor.
B tablom var burda y sütunumun değeri A tablosundaki x sütununun tek hali yani 5 veya 6.
Yapmam gereken işlem şu şekilde;
A tablosundaki verileri, A tablosunun x sütununda bulunan değerler B tablosunda y sütununda ki değerlerle eşleşiyorsa veri listele eşleşmiyorsa listeleme.
Yani bir örnekle açıklamak gerekirse;
A TABLOM
ID - X DEĞERİ
1 - 3,4,5
2 - 4,5,6
B TABLOM
ID - A KAYDI - Y DEĞERİ
1 - 1 - 3
2 - 1 - 4
3 - 1 - 5
4 - 2 - 4
5 - 2 - 5
Yukarda görüldüğü gibi A tablomda 1 ID sinde 3 değer var ve B tablomda da bu 3 değer var ve değer numaraları eşleşiyor veriyi getirmesi gerek. Ancak 2 ID sinde 3 değer var fakat B tablomda 2 kayıt var eşleşiyor fakat 6 nolu değer olmadığı için veriyi getirmemesi gerekli.
SELECT DISTINCT a.id, (SELECT COUNT(*) FROM b_tablosu WHERE a_kaydi= a.id AND durum = '1') AS degerlendirme_sayisi, (CHAR_LENGTH(x_degeri) - CHAR_LENGTH(REPLACE(x_degeri, ',', '')) + 1) as degerlendirici_sayisi FROM a_tablosu AS a LEFT JOIN b_tablosu AS b ON b.a_kaydi= a.id HAVING degerlendirme_sayisi = degerlendirici_sayisiYukarıdaki kodda sadece verilerin sayısına göre listeletebiliyorum lakin 1 değeri için b tablosunda 3, 4, 6 olsa bile verileri listeleyecek.
Normalde php ile birkaç kademede çözebilirim lakin yapmak istediğim şey sadece tek bir mysql sorgusuyla bu işlemi halletmek. Bahsettiğim konu tek mysql sorgusuyla halledilebilir mi?
oruç kafaya vurmuş herhalde iftar sonrası yaptığım hatayı anladım ve FIND_IN_SET ile çözdüm.