Ceviz Forum

Geri Dön   Ceviz Forum > Programlama > Veritabanları & SQL

Cevapla
 
LinkBack Seçenekler
Eski 21/04/2003, 00:48   #1 (permalink)
Üye
 
Scorpion Adlı Üyenin Profil Grafiği
 
Üyelik Tarihi: 10/2002
Mesaj: 965
Varsayılan Tablolar ve performans

Arkadaşlar merhabalar performans açısından bir kaç soru sorcam...
+----------+-------------+---------------+
+ id + bolum + acik +
+----------+-------------+---------------+
+ 1 + müzik + 1 +
+----------+-------------+---------------+

yukarıdaki tablonun adı bolum

+----------+-------------+---------------+---------------+
+ id +bolum_id + acik + yazi +
+----------+-------------+---------------+---------------+
+ 1 + 1 + 1 + bla bla bla +
+----------+-------------+---------------+---------------+


buda yazi tablomuz.

Şimdi ben yazı tablosunundan yazıları çekerken yazının gösterime açıkmı kapalımı (acik sutunundan 1 se acık) ona bakıp acık olanları seçiyorum aynı zamanda bolum de açık olmalı... yazi tablosundan hem yazı açık olan hemde bolumu açık olan yazıları inner join tarzı bişile mi belirlemek daha mantıklı yoksa yazı tablosuna bolum açık/kapalı şeklinde bir sutun ekleyip admin bir bolumu kapattığı zaman yazı yablosunda ki o bolume ait olan yazıların bolum açık kapalı sutununundan mı kapatmalıyım? Hangisi daha hızlı olur...

Benim gönlümden geçen tablo sekillerini bozmadan seçim yapmak.. yani tabloları birleştirip seçmek ama bunuda beceremedim bir türlü...
Scorpion hatta değil   Alıntı Yaparak Yanıtla
Eski 21/04/2003, 01:51   #2 (permalink)
Registered User
 
Üyelik Tarihi: 01/2003
Mesaj: 6,337
Varsayılan

SELECT *
FROM Yazi
WHERE bolum_id IN (SELECT id FROM Bolum WHERE Acik = 1)

Hangi veritabanini kullaniyorsun?
Ve versiyon..?
acemi hatta değil   Alıntı Yaparak Yanıtla
Eski 21/04/2003, 01:56   #3 (permalink)
Üye
 
Scorpion Adlı Üyenin Profil Grafiği
 
Üyelik Tarihi: 10/2002
Mesaj: 965
Varsayılan

mysql 4 kullanıyorum...
bu benimde aklımageldi ama (SELECT id FROM Bolum WHERE Acik = 1) sorgusunda acik alanını başdan seçmiyoruz bir problem yaratmazmı?
__________________
Scorpion hatta değil   Alıntı Yaparak Yanıtla
Eski 21/04/2003, 02:14   #4 (permalink)
Registered User
 
Üyelik Tarihi: 01/2003
Mesaj: 6,337
Varsayılan

Eksik yazmisim:

SELECT *
FROM Yazi
WHERE acik = 1
AND bolum_id IN (SELECT id FROM Bolum WHERE Acik = 1)

olacak ama bunu sadece MySQL 4.1 ve sonrasi calistirabilir. Aslinda JOIN de kullansan peformans sorunu kesinlikle cikmaz. Ayni tablo yapisini kullan ve JOIN ile yap.
acemi hatta değil   Alıntı Yaparak Yanıtla
Eski 21/04/2003, 02:20   #5 (permalink)
Üye
 
Scorpion Adlı Üyenin Profil Grafiği
 
Üyelik Tarihi: 10/2002
Mesaj: 965
Varsayılan

mysql 4 ve php de çalışmadı bunlar
__________________
Scorpion hatta değil   Alıntı Yaparak Yanıtla
Eski 21/04/2003, 03:03   #6 (permalink)
Registered User
 
Üyelik Tarihi: 01/2003
Mesaj: 6,337
Varsayılan

Subselect icin MYSQL'de 4.1 ve sonrasi gerekiyor. (4.1 henuz alpha asamasinda)
JOIN kullan.
acemi hatta değil   Alıntı Yaparak Yanıtla
Eski 21/04/2003, 03:07   #7 (permalink)
Üye
 
Scorpion Adlı Üyenin Profil Grafiği
 
Üyelik Tarihi: 10/2002
Mesaj: 965
Varsayılan

ehe onuda oturtamadım tam olarak.... Zaten bi türlü anlamadım şu join olayını
__________________
Scorpion hatta değil   Alıntı Yaparak Yanıtla
Eski 21/04/2003, 03:16   #8 (permalink)
Registered User
 
Üyelik Tarihi: 01/2003
Mesaj: 6,337
Varsayılan

Simdi su sekilde bir tablon olsaydi isini gormuyor muydu:

Bolum_id, Bolum_Adi, Bolum_Acik, Yazi_id, Yazi_acik, Yazi_Metin

JOIN ile yapilan, iki tabloyu birlestirip sanal olarak yukaridaki gibi tek bir tablo yaratmak.

SELECT Yazi.*
FROM Yazi INNER JOIN Bolum ON Yazi.Bolum_id = Bolum.id
WHERE Yazi.acik = 1
AND Bolum.acik = 1
acemi hatta değil   Alıntı Yaparak Yanıtla
Eski 21/04/2003, 03:20   #9 (permalink)
Registered User
 
Üyelik Tarihi: 01/2003
Mesaj: 6,337
Varsayılan

Bir baska sekilde yazilisi da:

SELECT Yazi.*
FROM Yazi, Bolum
WHERE Yazi.acik = 1
AND Bolum.acik = 1
AND Yazi.bolum_id = Bolum.id
acemi hatta değil   Alıntı Yaparak Yanıtla
Eski 21/04/2003, 03:51   #10 (permalink)
Üye
 
Scorpion Adlı Üyenin Profil Grafiği
 
Üyelik Tarihi: 10/2002
Mesaj: 965
Varsayılan

Alıntı:
Orjinal mesajı gönderen acemi5
Simdi su sekilde bir tablon olsaydi isini gormuyor muydu:

Bolum_id, Bolum_Adi, Bolum_Acik, Yazi_id, Yazi_acik, Yazi_Metin

JOIN ile yapilan, iki tabloyu birlestirip sanal olarak yukaridaki gibi tek bir tablo yaratmak.

SELECT Yazi.*
FROM Yazi INNER JOIN Bolum ON Yazi.Bolum_id = Bolum.id
WHERE Yazi.acik = 1
AND Bolum.acik = 1
heh abi işte şimdi inner joini bole anlatmadıki bana

bakalım anlamışmıyım... kayıtları bolum_id id sine gore aynı satırda topluyor... sanal bir tablo oluyor

saol abi...
Scorpion hatta değil   Alıntı Yaparak Yanıtla
Cevapla

Bookmarks

Seçenekler

Mesaj Yazma Hakları
Yeni mesajgöndermezsiniz
Cevap yazamazsınız
Dosya ekleyemezsiniz
Mesajınızı düzenleyemezsiniz

BB code is Açık
[IMG] kodu Açık
HTML kodu Kapalı
Trackbacks are Açık
Pingbacks are Açık
Refbacks are Açık

Benzer Konular
Konu Konuyu açana göre Forum Cevap En Son Mesaj
php ile veritabanı ve tablolar oluşturmak xogego PHP 8 18/02/2007 18:51
PhpMyAdmin tablolar anektod Veritabanları & SQL 4 07/02/2007 16:48
tablolar arası ilişki... micra Veritabanları & SQL 2 24/12/2006 15:17
iptables ,tablolar ve zıncırler blackman GNU / Linux / UNIX / BSD / Pardus 0 09/02/2005 00:41
FLash içinde tablolar kursad Flash / Director / Swift 3D ... 3 17/05/2004 18:13


Forum saati Türkiye saatine göredir. GMT +3. Şu anda saat 20:27.

Reklamlar & Desteklenenler
Hassas Valf | Hassas Kaplama | Antalyamız | Gazete | Ticari Bilişim | Hakan Müştak | Rüya Tabirleri | Kadın | Hastalıklar | Cepte msn ve e-posta | Webmaster | Antalya Aupair | Turkish Property Antalya | Forum | Chat | Perde | Adsl | Araba | bolindir.com | guncelle.com | livescore | Web Tasarım | evden eve nakliyat | forum | evden eve | sohbet | Resimcim| Kalifiye İnsan Kaynakları | Web Tasarım | Oyun | Yusuf KOÇ | Akın Yorulmaz | şiir | UFO | Web Tasarım | Oyunlar | Canlı Tv |


Forum Yazılımı: vBulletin Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
Search Engine Friendly URLs by vBSEO 3.2.0
Copyright ©2001 - 2008, Ceviz.net