asp mysql sorguda birden fazla tablo birleştirme ve arama

Diğer veritabanları ve SQL komutlarıyla ilgli sorularınızı sorabilirsiniz. Delphi tarafındaki sorularınızı lütfen Programlama forumunda sorunuz.
haznedarli
Üye
Mesajlar: 122
Kayıt: 31 Tem 2010 05:38

asp mysql sorguda birden fazla tablo birleştirme ve arama

Mesaj gönderen haznedarli » 06 Eki 2011 11:59

herkese kolay gelsin
yaklaşık 39 mysql db si var elimde bunları bir leştirip tek bir hale getirmek ama beceremedim hepsi lazım degil lazım olanları bir türlü bir leştiremedim

DB ADI : an_telai - TABLOLAR TELAIO,PV_CODE

TELAIO İÇERİK : ZCFC3150002319741
PV_CODE İÇERİK : 10011131000140
YAP MAK İSTEDİGİM AN_TELAI İÇİNDE TELAIO ARAMA YAPACAK ZCFC3150002319741 BUNU BULACAK VE PV _CODEYI ALIP

DİGER DB
VP YE GİDİP ONUN İÇİNDE PV_CODE İLE KARŞILAŞTIRIP 10011131000140 BUNU BULUP CBV_CODE YI ALIP

DİGER DB
scheda_tecnica_vcb GİDİP CBV_CODE İLE KARŞILASTIRIP MODELLO,CD_MOD_COMMLE,ID_MOTORE Yİ ALICAM

DAHA GERİSİ VARDA DB İÇİNDE HALA GERİSİNİ NERDEN ALCAM BULAMADIM ONU BULURUZ SIRASINI DA BUNLARI BİR BİRİNE BAGLAYA BİLİRSEM GERİSİNİ ALABİLİRİM
BANA BAŞLANGIÇ NAKTASI VE BİR ÖRNEK SORGU LAZIM YARDIMCI OLABİLİRMİSİNİZTEKRARDAN KOLAY GELSİN...

mkysoft
Kıdemli Üye
Mesajlar: 3031
Kayıt: 25 Ağu 2003 11:35
Konum: İstanbul
İletişim:

Re: asp mysql sorguda birden fazla tablo birleştirme ve aram

Mesaj gönderen mkysoft » 06 Eki 2011 12:45

SELECT * from an_telai.TELAIO LEFT JOIN VP ON TELAIO.PV_CPDE = VP.PV_CODE WHERE TELAIO = "ZCFC3150002319741"

diğer tabloya tekrar left join yapabilirsin.

haznedarli
Üye
Mesajlar: 122
Kayıt: 31 Tem 2010 05:38

Re: asp mysql sorguda birden fazla tablo birleştirme ve aram

Mesaj gönderen haznedarli » 06 Eki 2011 01:04

SELECT * from an_telai.TELAIO LEFT JOIN VP ON TELAIO.PV_CPDE = VP.PV_CODE LEFT JOIN VP ON TELAIO.PV_CPDE = VP.PV_CODE WHERE TELAIO "ZCFC3150002319741"
gibimi ikinciyi ekliyorum ??


haznedarli
Üye
Mesajlar: 122
Kayıt: 31 Tem 2010 05:38

Re: asp mysql sorguda birden fazla tablo birleştirme ve aram

Mesaj gönderen haznedarli » 06 Eki 2011 02:53

ben böyle yapmak zorunda kaldım ikinciyi hatta üçüncüyü tek bir sorguna nasıl yazabilirim ?
şimdiden teşekkürler

<%
aranan=Request("aranan" )
Set Rs = Server.CreateObject("ADODB.Recordset" )
sql = "SELECT vp.*,an_telai.* from an_telai LEFT JOIN vp ON an_telai.PV_CODE = VP.PV_CODE WHERE an_telai.TELAIO LIKE '%"&aranan&"%' "
Rs.Open sql,bag,1,3
If Rs.Eof Then
Response.Write ("Kayit Bulunamadi")
Else

Set Rs2 = Server.CreateObject("ADODB.Recordset" )
sql = "SELECT * from scheda_tecnica_vcb LEFT JOIN vp ON VP.PV_CODE =scheda_tecnica_vcb.cbv_code WHERE scheda_tecnica_vcb.cbv_code LIKE '%"&rs("cbv_code")&"%' "
Rs2.Open sql,bag,1,3

%>
<table width="657" border="1">
<tr>
<td width="113">Aranilan sase no:</td>
<td width="201"><% response.write (aranan)%></td>
<td width="57">Vp No:</td>
<td width="258"><%=rs("pv_code")%>-<%=rs("cbv_code")%></td>
</tr>
<tr>
<td>araç Modeli </td>
<td><%=rs2("cd_mod_commle")%></td>
<td>&nbsp;</td>
<td>&nbsp;</td>
</tr>
<tr>
<td>&nbsp;</td>
<td>&nbsp;</td>
<td>&nbsp;</td>
<td>&nbsp;</td>
</tr>
</table>
<% End If %>

mkysoft
Kıdemli Üye
Mesajlar: 3031
Kayıt: 25 Ağu 2003 11:35
Konum: İstanbul
İletişim:

Re: asp mysql sorguda birden fazla tablo birleştirme ve aram

Mesaj gönderen mkysoft » 07 Eki 2011 12:28

Tabloları hiyerarşi sırasına göre seçmelisiniz. Anladığım kadarıyla VP isimli tablonuz ana tablonuz. Yinede çözmek zor geldi. İlişkiyi şekilsel olarak çizerseniz daha kolay olacaktır.
İlk SQL de from kısmında bu tabloyu kullanınız. Join ettiğiniz tablolar buna bağlı olsun. Eğer tablolar hiyerarşi şeklindeyse parentez kullanarak join yapsını belirtiniz.
select * from tablo1 (left join tablo2 using alan1=alan2 left join tablo3 using alan1=alan4)

haznedarli
Üye
Mesajlar: 122
Kayıt: 31 Tem 2010 05:38

Re: asp mysql sorguda birden fazla tablo birleştirme ve aram

Mesaj gönderen haznedarli » 07 Eki 2011 08:29

kolay gelsin tekrardan yapmak istedigim bu aslında :=) tablo 1 de arama yapacagız pv_codeyi alacak bir birine baglı oarak gidecek
tablo3 = alan3 codıce_opt 23 bu alanve tablo4 = alan2 codıce_opt 23 bu alanda 1 den çok var 23 örnek verildi ortalama 1 150 arasnda eşit olan deger var belki daha fazla birz karışık ama db leri yollıyamıyorum çok büyükler.. toplam 4,5 gb

tablo 1 = alan1 telaio like 'ZCFC3150002319741'
tablo 1 = alan2 pv_code 10011131000140

tablo2 = alan1 pv_code 10011131000140
tablo2 = alan2 cbv_code 10011131

tablo3 = alan1 pvcode 10011131000140
tablo3 = alan2 cbv_code 10011131
tablo3 = alan3 codıce_opt 23

tablo4 = alan1 cbv_code 10011131
tablo4 = alan2 codıce_opt 23
tablo4 = alan1 tonumber 500108

tavlo5 = alan1 tonumber 500108
tablo5 = alan2 classe 50
tablo5 = alan3 language_code 3

şu ana kadar burayı buldum devamı var ama yavaş yavaş bulabiliyorum aynı zamanda iş yerinde başka işlere bakıyorum

haznedarli
Üye
Mesajlar: 122
Kayıt: 31 Tem 2010 05:38

Re: asp mysql sorguda birden fazla tablo birleştirme ve aram

Mesaj gönderen haznedarli » 08 Eki 2011 07:44

yukarıda yazdıgım sıralamaya göre nasıl yapabilrim bu join i ?
mkysoft bunu
select * from tablo1 (left join tablo2 using alan1=alan2 left join tablo3 using alan1=alan4)
yazmış yollamış saolsun ama onu beceremedim yanlış bir halt ettim sanırım bunu nasıl bir sıraya koarak yapacagım anlatabilirmisiniz

mkysoft
Kıdemli Üye
Mesajlar: 3031
Kayıt: 25 Ağu 2003 11:35
Konum: İstanbul
İletişim:

Re: asp mysql sorguda birden fazla tablo birleştirme ve aram

Mesaj gönderen mkysoft » 09 Eki 2011 12:24

haznedarli yazdı:kolay gelsin tekrardan yapmak istedigim bu aslında :=) tablo 1 de arama yapacagız pv_codeyi alacak bir birine baglı oarak gidecek
tablo3 = alan3 codıce_opt 23 bu alanve tablo4 = alan2 codıce_opt 23 bu alanda 1 den çok var 23 örnek verildi ortalama 1 150 arasnda eşit olan deger var belki daha fazla birz karışık ama db leri yollıyamıyorum çok büyükler.. toplam 4,5 gb

tablo 1 = alan1 telaio like 'ZCFC3150002319741'
tablo 1 = alan2 pv_code 10011131000140

tablo2 = alan1 pv_code 10011131000140
tablo2 = alan2 cbv_code 10011131

tablo3 = alan1 pvcode 10011131000140
tablo3 = alan2 cbv_code 10011131
tablo3 = alan3 codıce_opt 23

tablo4 = alan1 cbv_code 10011131
tablo4 = alan2 codıce_opt 23
tablo4 = alan1 tonumber 500108

tavlo5 = alan1 tonumber 500108
tablo5 = alan2 classe 50
tablo5 = alan3 language_code 3

şu ana kadar burayı buldum devamı var ama yavaş yavaş bulabiliyorum aynı zamanda iş yerinde başka işlere bakıyorum
tablo1 pv_code ile tablo2 pv_code bağlı
tablo3 pv_code ve cbv_code ile tablo2 bağlı
tablo 4 cvb_code ve codice_opt ile tablo3 bağlı
tablo5 tonumber ile tablo4 bağlı
bu şekilde anlatsanız daha kolay olacaktı.

select * from tablo1 left join tablo2 using on pv_code left join tablo3 using on (pv_code,cbv_code) left join tablo4 using on (cvb_code,codice_port) left join tablo5 using on (tonumber) olabilir.

İşin kolayı, eğer komutu yazmakta zorlanıyorsanız, yapnın benzerini Microsoft Access ile oluşturun ve sorgu sihirbazı ile yapın. Sonra SQL'ine bakabilirsiniz. Gerçi MySQL içinde bu tür araçlar var, SQLyog gibi. Erinmedim Access de yaptım:


SELECT *
FROM table5 INNER JOIN (table4 INNER JOIN ((table2 INNER JOIN table1 ON table2.pv_code = table1.pv_code) INNER JOIN table3 ON (table2.cvb_code = table3.cvb_code) AND (table2.pv_code = table3.pvcode)) ON (table2.cvb_code = table4.cvb_code) AND (table4.codice_opt = table3.codice_opt) AND (table4.cvb_code = table3.cvb_code)) ON table5.tonumber = table4.tonumber
WHERE table1.telaio like "ZCFC3150002319741";


access dosyasınıda ekliyorum.
Dosya ekleri
Database2.zip
(25.56 KiB) 84 kere indirildi

haznedarli
Üye
Mesajlar: 122
Kayıt: 31 Tem 2010 05:38

Re: asp mysql sorguda birden fazla tablo birleştirme ve aram

Mesaj gönderen haznedarli » 10 Eki 2011 07:26

çok teşekkürler şimdi deniyecegim ama çaılışacagından emminim şimdiden gene teşekkürler...

haznedarli
Üye
Mesajlar: 122
Kayıt: 31 Tem 2010 05:38

Re: asp mysql sorguda birden fazla tablo birleştirme ve aram

Mesaj gönderen haznedarli » 10 Eki 2011 09:01

SELECT * FROM tonumber INNER JOIN (vcb_tavole_pacc INNER JOIN ((vp INNER JOIN an_telai ON vp.pv_code = an_telai.pv_code)
INNER JOIN vp_opt_pacc ON (vp.cbv_code = vp_opt_pacc.cbv_code) AND (vp.pv_code = vp_opt_pacc.pv_code)) ON (vp.cbv_code = vcb_tavole_pacc.cbv_code) AND (vcb_tavole_pacc.codice_opt = vp_opt_pacc.codice_opt) AND (vcb_tavole_pacc.cbv_code = vp_opt_pacc.cbv_code)) ON tonumber.tonumber = vcb_tavole_pacc.tonumber WHERE an_telai.telaio like 'ZCFC3150002319740' ;

BU şekile getirdim ama gene olmadı bom boş veriyor tabloları ben yanlış yaptım sanırım db yi mdb ye çevirip içindekileri biraz boşaltıp yollıyacagım yada ben telefonumu yassam 08:30 - 19:00 saatleri arasında pc başındayım tel versem teamwiever falan açsam kendin ne yapmak istedigimi ekranda görsen olurmu ??

haznedarli
Üye
Mesajlar: 122
Kayıt: 31 Tem 2010 05:38

Re: asp mysql sorguda birden fazla tablo birleştirme ve aram

Mesaj gönderen haznedarli » 11 Eki 2011 12:27

SELECT DISTINCTROW lessico_cl.CLASSE , lessico_cl.DS_BREVE
FROM
an_telai
INNER JOIN vp ON vp.PV_CODE = an_telai.PV_CODE
INNER JOIN filtro_dati_catalogo ON filtro_dati_catalogo.PV_CODE = vp.PV_CODE AND filtro_dati_catalogo.CBV_CODE = vp.CBV_CODE
INNER JOIN vp_opt_pacc ON vp_opt_pacc.PV_CODE = filtro_dati_catalogo.PV_CODE AND vp_opt_pacc.CBV_CODE = filtro_dati_catalogo.CBV_CODE
INNER JOIN vcb_tavole_pacc ON vcb_tavole_pacc.CBV_CODE = vp_opt_pacc.CBV_CODE AND vcb_tavole_pacc.CODICE_OPT = vp_opt_pacc.CODICE_OPT
INNER JOIN an_tavole ON an_tavole.COD_TAVOLA_GRAFICA = vcb_tavole_pacc.COD_TAVOLA_GRAFICA AND an_tavole.TONUMBER = vcb_tavole_pacc.TONUMBER AND an_tavole.FL_TAVOLA_MADRE = 1
INNER JOIN tonumber ON tonumber.TONUMBER = an_tavole.TONUMBER
INNER JOIN lessico_cl ON lessico_cl.CLASSE = tonumber.CLASSE AND lessico_cl.LANGUAGE_CODE = 3
WHERE an_telai.TELAIO = 'ZCFC3572005481899'
ORDER BY lessico_cl.CLASSE

NAVİCAT sayesinde bu hale getidim mkysoft saolsun akıllı fazladan verdi ama ben gene tıkandım :)

INNER JOIN lessico_gr ON lessico_gr.GRUPPO = TONUMBER.TONUMBER EKLEMEM GEREK AMA BİR SORUN VAR

lessico_gr.GRUPPO İÇERİK 5001
TONUMBER.TONUMBER İÇERİKLER 500100 500101 520000 520010 520020 GİBİ GİDİYOR BANA
TONUMBER.TONUMBER SADECE SONU 00 LA BİTENLERİ CEKECEK VE 00 HARİÇ

JOIN lessico_gr ON lessico_gr.GRUPPO YAZACAK :=)))

mkysoft
Kıdemli Üye
Mesajlar: 3031
Kayıt: 25 Ağu 2003 11:35
Konum: İstanbul
İletişim:

Re: asp mysql sorguda birden fazla tablo birleştirme ve aram

Mesaj gönderen mkysoft » 11 Eki 2011 10:05

where şartına yazabilirsin, copy fonksiyonu var.

haznedarli
Üye
Mesajlar: 122
Kayıt: 31 Tem 2010 05:38

Re: asp mysql sorguda birden fazla tablo birleştirme ve aram

Mesaj gönderen haznedarli » 12 Eki 2011 07:39

ben anlamadım bu copy olayını nasıl yapılır bu yada tonumberden iki tabloyu alıp oraya bir de yasza olur
tonumber.alan1=50
tonumber.alan2=01 yada bunları birleştirip
JOIN lessico_gr ON lessico_gr.GRUPPO= tonumber.alan1=50 ve tonumber.alan2=01 de olabilir ama nasıl bir leştiricem ?

haznedarli
Üye
Mesajlar: 122
Kayıt: 31 Tem 2010 05:38

Re: asp mysql sorguda birden fazla tablo birleştirme ve aram

Mesaj gönderen haznedarli » 12 Eki 2011 03:36

INNER JOIN lessico_gr ON lessico_gr.GRUPPO = concat(TONUMBER.CLASSE,TONUMBER.GRUPPO)

YOLU İLE HALLETTİM :=)))

Cevapla