Karmaşık Sorgular

Her zaman kullanılmayan ancak elzem olan sorgular...

İki ayrı tablonuz olduğunu farz edelim. Bunlardan birincisi Grup Adlarını tutsun. İkinciside O gruplara ait içerikleri barındırıyor olsun. Böyle bir durumda tek sorguyla bir VIEW yaratıp Grup Adları altında o gruba ait kaçar tane içerik olduğunu sürekli canlı tutabiliriz. Böylece uzun soygu ve kayıtlarla uğraşmak zorunda kalmayız.

 
CREATE VIEW icerik_grup_istatistik AS SELECT baslik, (SELECT COUNT(*)  FROM icerik WHERE gno=icerik_grup.no) FROM icerik_grup

Yukardaki gibi oluşturduğumuz bir view (görüntü) sayesinde bir tablomuz sürekli güncel verileri içerecektir.

  İç içe sorgu:

UPDATE `proje_grup` SET `proje_sayisi`=(SELECT COUNT(*) FROM proje WHERE pgno=icerik_grup.no)
SELECT * FROM `AramaDuzeltmesiGrubu` WHERE no NOT IN (SELECT DISTINCT GrupNo FROM AramaDuzeltmesi)
 
if kullanımı
UPDATE vitrin SET yayin = IF(yayin = 1, NULL, 1) WHERE no='169'

 

zaman

AND tar>DATE_ADD(NOW(), INTERVAL -1 HOUR)

 

Şartlara göre belirlenen bir tabloyu silmek

DELETE FROM `departmandaki_urunler_alternatifler_grubu` WHERE no NOT IN (SELECT DISTINCT GrupNo FROM departmandaki_urunler_alternatifler)

 

Birden fazla olan kayıtları listeler 

SELECT * FROM _guvenlik_bayi_giris GROUP BY kuki HAVING count(*) >= 2
SELECT * FROM _guvenlik_bayi_giris GROUP BY kuki HAVING count(*) >= 2 AND tar>'2017-02-09'

 

 

SELECT foto_grup.no, foto_grup.baslik, foto.aciklama, foto.resimyol, foto.foto FROM `foto_grup` LEFT JOIN foto ON (foto.gno=foto_grup.no) GROUP BY foto_grup.no ORDER BY foto_grup.sira

SELECT * FROM article WHERE article_title IN (SELECT * FROM (SELECT article_title FROM article GROUP BY article_title HAVING COUNT(article_title) > 1) AS a);
                       

SELECT foto_grup.no, foto_grup.baslik, Lfoto.aciklama, Lfoto.resimyol, Lfoto.foto FROM `foto_grup` LEFT JOIN (SELECT * FROM foto ORDER BY sira DESC) AS Lfoto ON (Lfoto.gno=foto_grup.no) GROUP BY foto_grup.no ORDER BY foto_grup.sira

SELECT ArabaMarka.Marka, ArabaModel.ModelAd AS Model, plasiyer.ad_soyad AS Teknisyeni, Firmalar.ad_soyad AS Firma, IslemKaydi.*, Resimler.resim FROM IslemKaydi LEFT JOIN ArabaMarka ON (IslemKaydi.AracMarka=ArabaMarka.no) LEFT JOIN ArabaModel ON (IslemKaydi.AracModel=ArabaModel.no) LEFT JOIN plasiyer ON (IslemKaydi.Teknisyen=plasiyer.no) LEFT JOIN Firmalar ON (IslemKaydi.IsYapilanFirma=Firmalar.no) LEFT JOIN (SELECT * FROM resimler WHERE tb='arac' GROUP BY tn) AS Resimler ON (IslemKaydi.no=Resimler.tn) ORDER BY no DESC
       
SELECT Ip FROM (SELECT Ip FROM GoogleTiklama WHERE Id=1 ORDER BY no DESC LIMIT 2) AS Sonuc GROUP BY Sonuc.Ip
       
SELECT * FROM `GoogleTiklama` WHERE Id=1 AND (Tarih BETWEEN '2018-07-01 00:00:00' AND '2018-07-01 23:59:59')
   
SELECT COUNT(*) AS Tiklanma, Ip FROM (SELECT Ip FROM GoogleTiklama WHERE Id='{$Fi['id']}' AND Tarih>DATE_ADD(NOW(), INTERVAL -7 DAY)) AS Sonuc GROUP BY Sonuc.Ip HAVING COUNT(*)>1

 

Karmaşık SorgularKarmaşık SorgularKarmaşık SorgularKarmaşık SorgularKarmaşık SorgularKarmaşık SorgularKarmaşık SorgularKarmaşık SorgularKarmaşık SorgularKarmaşık Sorgular

Kaynaklar

Yorumunuzu Ekleyin


Yükleniyor...
Yükleniyor...