Mysql 2 tablo ile 3'lü ilişkilendirme ?
2 adet tablom var fakat ilişkilendirmeyi 3 lü yapmak durumundayım.
farazi olarak söyle söylim
urun tablosu ve urun_ozellik tablosu
urun -->
id adi ozellikID
1 deneme 1
2 örnek 1
3 test 0
urun_ozellik -->
id altID baslik ozellik_baslik ozellik durum
1 0 test null 1
2 1 null php 1
3 1 null asp 1
4 1 null js 0
şimdi anlatabilecekmiyim ondan bile emin değilim. :)
filtreleme yaparken
ozellik_baslikları listeliyorum
asp ( ait toplam urun sayisi)
php ( ait toplam urun sayisi)
js ( ait toplam urun sayisi)
normalde yukardaki tabloya göre
asp ( 2 )
php ( 2 )
js ( 0 )
0 = pasif
1 = aktif
olmasını hedefliyorumda duruma a geçmeden önceki öteki tarafı yapim dedim olmadı
SÖYLE BİŞİ YAPTIM AMA BU KAFAM DÜŞÜNMEKTEN YANDIĞI İÇİN :) İSTEDİĞİM SONUCU ELDE EDEMEDİM BİR TÜRLÜ
Anladığım kadarıyla, istediğiniz sonuç her özellik başlığı için, o özellik başlığına sahip olan kaç tane aktif ürün olduğunu gösteren bir liste. Bunu elde etmek için şöyle bir sorgu yazabilirsiniz:
Bu sorgu, önce urun_ozellik tablosunu iki kere JOIN ederek, her bir özellik başlığına sahip olan ürünleri listeleyecek. `p1.altID = 0
koşulu, sadece özellik başlıklarını seçmenizi sağlar (yani altID'si 0 olan özellikleri). p2.durum = 1
koşulu, sadece aktif özellikleri seçmenizi sağlar. Son olarak, GROUP BY
ifadesi, her bir özellik başlığı için ayrı ayrı sonuçlar elde etmenizi sağlar.
Bu sorguyu çalıştırdıktan sonra, her özellik başlığı için, o özellik başlığına sahip olan kaç tane aktif ürün olduğunu gösteren bir liste alabilirsiniz.