(6)
Cins MySQL Query Sorusu
sql özürlü şahsımın yapmak istediği şey şu şekilde:şimdi 2 tablo olacak biri isim, id ve içerik sayısından oluşuyor, öteki de içeriklerin bulunduğu tablo, üst tablonun idsi ve başka bir tablonun eleman idsinden oluşuyor, yani iki tane int.tablo master : int id, string isim, int içeriksayisitablo sla
sql özürlü şahsımın yapmak istediği şey şu şekilde:
şimdi 2 tablo olacak biri isim, id ve içerik sayısından oluşuyor, öteki de içeriklerin bulunduğu tablo, üst tablonun idsi ve başka bir tablonun eleman idsinden oluşuyor, yani iki tane int.
tablo master : int id, string isim, int içeriksayisi
tablo slave : int master, int içerik
şimdi yapmak istediğim şey bu slave'den or ile içerik sorgulatmak "select master from slave where içerik = 1 or içerik = 5" şeklinde. ardından çıkan sonuçlarda masterlardan içerik sayısına göre yeteri kadar olup olmadığını bulmak.
yani master'ın içerik sayısı 5 diyorsa atıyorum bu sorgumda 5 tane master çıktıysa ben onu ayrı muameleye alacağım. bunu mümkün oldukça query'de yapmak için nasıl bir yol izlemem gerekir? saygılar.
0
tam da anlayamadı maslında sorunu ama bi de şöyle yazmayı dene:
select master from slave where içerik like(1,5)
1'le 5'i tırnak içinde de yazmak gerekebilir.
geçti gerçi de ben burda like yerine in yazıcaktım aslında yanlış yazmışım. neyse.
0
tepedeki psychedelic adam
(
29.07.11)
bana şu şekilde sonuç çıkarsa negzel olur mesela:
(order by çıkan sayı/toplam sayı)
- master id, çıkan sayı, toplam sayı, çıkan sayı/toplam sayı
0
@tepedeki
bu ilk query'den sonra çıkan sonuçları ve sayılarını bir çıktı olarak almak istiyorum böyle bi query var mıdır?
0
soyle bisey olabilir, denemek lazim;
select m.id, m.icerik_sayisi, count(*) as slave_icerik_sayisi
from master m, slave s where m.id = s.master_id
group by m.id, m.icerik_sayisi
having m.icerik_sayisi <> count(*)
0
@nawres
select m.id, m.icerik_sayisi, count(*) as slave_icerik_sayisi
from master m, slave s where s.icerik = 1 AND m.id = s.master_id
group by m.id, m.icerik_sayisi
having m.icerik_sayisi <> count(*)
şeklinde sonuç alıyorum fakat
select m.id, m.icerik_sayisi, count(*) as slave_icerik_sayisi
from master m, slave s where (s.icerik = 1 OR s.icerik = 2) AND m.id = s.master_id
group by m.id, m.icerik_sayisi
having m.icerik_sayisi <> count(*)
şeklinde alamıyorum, fakat or s.icerik = 3 girersem sonuç geliyor yine :/
slave'de sadece 1 ve 2 var, 3 yok.
0
ben ordaki icerik = 1 or icerik = 5 kismin hic gormedim ilk baktigimda :)
sonuc alamiorum derken, sorgu hata mi veriyor?
s.icerk'i de group by'a eklersen istedigin olur gibi, emin olamadim. soyle bi denesene;
select m.id, m.icerik_sayisi, s.icerik, count(*) as slave_icerik_sayisi
from master m, slave s where m.id = s.master_id and (s.icerik = 1 OR s.icerik = 2)
group by m.id, m.icerik_sayisi, s.icerik
having m.icerik_sayisi <> count(*)
0