SQL Sorgusundaki Problem ?

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
ChangeoveR
Üye
Mesajlar: 29
Kayıt: 12 Mar 2008 03:29

SQL Sorgusundaki Problem ?

Mesaj gönderen ChangeoveR »

Arkadaslar;

universite ve ogrenci adli bir tablom var. Her iki tablo birbirine univ_id adli ve tipi Integer olan bir alan ile bagli. Yasadigim sorun su:

Bazi kayitlarda ogrenci tablosunun univ_id alanina herhangi bir sekilde veri girmiyorum dogal olarak bu alan tabloda 0 degeri almis olarak gorunuyor; fakat SQL sorgusunda bu kaydi goremiyorum.

SQL Sorgum :
select dosya.dosya_id, kimlik.tckno, ogrenci.ogrno, kimlik.adisoyadi, universite.universite,
dosya.gsm, dosya.oda_id, dosya.yatak_no

from dosya, kimlik, ogrenci, universite

where kimlik.tckno = dosya.tckno and kimlik.tckno = ogrenci.tckn
and ogrenci.univ_id = universite.univ_id
Ben, ogrenci tablosundaki univ_id alanina deger girmedigim kaydida gormek istiyorum; fakat bunu basaramiyorum, sebebini bilen arkadaslarin yardimci olmasi mumkun mu ?

Kullandigim veritabani : MDB
neu84
Üye
Mesajlar: 307
Kayıt: 06 Oca 2011 11:27

Re: SQL Sorgusundaki Problem ?

Mesaj gönderen neu84 »

ögrenci tablosuna girmediginiz kaydı (univ_id) üniversite tablosuna giriyorsanız eger where koşulunda ki ortak alanlar birbiriyle uyuşan univ_id bulamadıgı için göstermiyor olabilir. dosya, kimlik tablolarında üniversite yada ögrenci tabloları arasında ortak alanlar varsa join kullanırsanız daha iyi olur bence.. tablolarınızın yapısını bilmedigim için ancak öneride bulunabilirim, left join, right join i bir araştırın, istediginizi bunlarla elde edebilirsiniz..
ChangeoveR
Üye
Mesajlar: 29
Kayıt: 12 Mar 2008 03:29

Re: SQL Sorgusundaki Problem ?

Mesaj gönderen ChangeoveR »

neu84 yazdı:ögrenci tablosuna girmediginiz kaydı (univ_id) üniversite tablosuna giriyorsanız eger where koşulunda ki ortak alanlar birbiriyle uyuşan univ_id bulamadıgı için göstermiyor olabilir. dosya, kimlik tablolarında üniversite yada ögrenci tabloları arasında ortak alanlar varsa join kullanırsanız daha iyi olur bence.. tablolarınızın yapısını bilmedigim için ancak öneride bulunabilirim, left join, right join i bir araştırın, istediginizi bunlarla elde edebilirsiniz..

Yanit verdiginiz icin tesekkuler.

dosya,kimlik ve ogrenci tablosu arasindaki iliski tckno alani ile kurulmakta, universite ve ogrenci arasindaki iliskisi ise univ_id alani ile kurulmaktadir.

Soyle bir komut ile ogrenci ve universite tablolarini birlestirip, kayit girilmemis alani bile gorebiliyorum

Kod: Tümünü seç

select ogrenci.ogrno, universite.universite
from ogrenci

LEFT JOIN universite
ON  ogrenci.univ_id = universite.univ_id
Fakat bu birlesime dosya ve kimlik tablolarini dahil edemiyorum, edemedigim icin de DBGrid nesnesinde goremiyorum.
En son ChangeoveR tarafından 20 Tem 2011 06:36 tarihinde düzenlendi, toplamda 1 kere düzenlendi.
neu84
Üye
Mesajlar: 307
Kayıt: 06 Oca 2011 11:27

Re: SQL Sorgusundaki Problem ?

Mesaj gönderen neu84 »

evet bahsettigim tamda bu sorgu, ancak Dosya ve Kimlik kime ait? ögrenciye mi üniversiteyemi, bunlarda da Ögrenci yada üniversite tablolarının primary key i olan fieldleri foreign key olarak koyarsanız hem kim ait oldugu belli olur hemde yine join ile tek sorgu içinde çagırabilirisiniz..
ChangeoveR
Üye
Mesajlar: 29
Kayıt: 12 Mar 2008 03:29

Re: SQL Sorgusundaki Problem ?

Mesaj gönderen ChangeoveR »

Zorlandim; ama yapmayi da basardim. Ipucu verdiginiz icin tesekkurler...

Kod: Tümünü seç

SELECT  dosya.dosya_id, ogrenci.ogrno, kimlik.tckno, kimlik.adisoyadi,
universite.universite, bolum.bolum

FROM (((

(kimlik LEFT JOIN dosya ON kimlik.tckno = dosya.tckno) 

LEFT JOIN ogrenci ON kimlik.tckno = ogrenci.tckn) 

LEFT JOIN universite ON ogrenci.univ_id = universite.univ_id)

LEFT JOIN bolum ON ogrenci.bolum_id = bolum.bolum_id)
neu84
Üye
Mesajlar: 307
Kayıt: 06 Oca 2011 11:27

Re: SQL Sorgusundaki Problem ?

Mesaj gönderen neu84 »

Zorlandim; ama yapmayi da basardim. Ipucu verdiginiz icin tesekkurler...
Rica ederim işe yaramasına sevindim..
Kullanıcı avatarı
White Rose
Üye
Mesajlar: 726
Kayıt: 06 Tem 2005 09:41
Konum: Güneyden
İletişim:

Re: SQL Sorgusundaki Problem ?

Mesaj gönderen White Rose »

ayrıca sql sorgulamalarında hiç değer girilmemiş numerik alanları sorgulayamazsınız, bunlara varsayılan olarak 0 değeri atayın.
Cevapla