[Linux-programlama] mysql sqlinde join yapamadim

---------

New Message Reply About this list Date view Thread view Subject view Author view Attachment view

From: Erkin Tek (erkintek@fotograf.web.tr)
Date: Tue 15 May 2007 - 11:08:31 EEST


Selam,
4 tane tablom var:
isci = id, bolum, deptartman
egitim = id, adı, kodu, expiredate
bge = bolum, departman, egitim
isci_taken = isci, given
egitim_given = id, egitim, tarih, veren, aciklama

şimdi iki bağımsız tablo var işçi ve eğitim. Bunlar tanımları tutuyolar.
bge bolumler ve departmanlara atadigimiz egitimleri tutuyo
isci_taken iscilerin verilen hangi egitimlere katıldığını hatırlıyo
egitim_given ise verilen egitimleri tutuyo

şimdi bir sorguda işçilerimizin bge'den kaynaklanan almaları gereken
egitimleri, ve isci_given'da hatırlanan hangi eğitimleri aldıklarını (exprity
date'ide göz önüne alarak) bir sorgu döşedim ki left join kısmısında (e tabi
adama eğitim verilmemiş olabilir! dolayısiyle taken null getirdiğinde bizim
kırmızı kımızı gözlerine sokmamız için) üç tane tabloyu sokuşturmam gerekiyor
my dedik bağrımıza bastık ama izin vermiyo ki.

select isci.id, null, bge.egitim
                from
isci, given, bge
                left join
taken
                on
((bge.egitim=given.egitim && (taken.egitim=given.id)) &&
((bge.egitim<=(given.tarih+NOW()))||(given.almisti=1 )))
                where
isci.aktif=1 and $filitre and isci.bolum=bge.bolum and isci.gorev=bge.gorev
                order by
 isci.id

sorgum pek şukela, $filitre dediği işçileri departmana fln göre seçtiğimiz
hani içinde "isci.ad like '%adi%'" veya isci.dept=3 fln olan bişiyler.

SIKINTI "join ... on " tümcesi içinde iki tablo istiyo zannımca, hata veriyo.
Nası kassak ki. Böyle union fln bana estetik gelmiyo da şimdilik öyle yapçam,
daha güzel bi çözüm öneren olur mu acep?
_______________________________________________
Linux-programlama mailing list
Linux-programlama@liste.linux.org.tr
http://liste.linux.org.tr/mailman/listinfo/linux-programlama


New Message Reply About this list Date view Thread view Subject view Author view Attachment view

---------

Bu arsiv hypermail 2.1.2 tarafindan uretilmistir.