»
SQL ve birden çok tabloda aynı anda arama olayı
|
| Veritabanları MySQL , MSSQL, SQL, Access, Oracle |
![]() |
|
|
LinkBack | Seçenekler |
|
|
#1 (permalink) |
|
Üyelik Tarihi: 14.06.2004
Yer: Ege'nin en büyük köyü
Yaş: 26
Mesaj: 574
|
SQL ve birden çok tabloda aynı anda arama olayı
Merhabalar Arkadaşlar; Bu SQL 'le oldum olasi gıcığımdır zaten. "Baba Coder" arkadaşımız yıllık izine ayrıldı, kod işleri de ortada kaldı. Ne anlarım ki bu SQL 'den ... Neyse, sorum şu olacak; Veritabanımızda a, b, c, d, e, f gibi tablolarımız olsun. Ve tüm bu tabloların içinde de baslik ve yazi gibi iki tane alan bulunsun. SQL kullanarak tüm bu alanlarda aynı anda nasıl arama yaptırabilirim. Tek bir tablo da istediğim alanda istediğim şekilde arama yaptırabiliyorum ama aynı anda bu a, b, c, d, e, f tabloları içinde ki baslik ve yazi alanlarında arama yaptırtamıyorum, deli olacağım. 2 gündür bu SQL yüzünden neler çekiyorum. Ufacık bir tek tırnak, virgün, ya da & işareti yüzünden of of olmuyor ya ... Lütfen, yardımcı olabilirseniz sevinirim. İyi çalışmalar ... |
|
|
|
|
|
#2 (permalink) |
|
Üyelik Tarihi: 09.12.2000
Yer: istanbul
Yaş: 30
Mesaj: 1,947
|
Re: SQL ve birden çok tabloda aynı anda arama olayı
en basit haliyle
Kod:
aranan = "a"
SQL = " select baslik, yazi from a where baslik like '%"& aranan &"%' AND yazi like '%"& aranan &"%'"&_
" union "&_
" select baslik, yazi from b where baslik like '%"& aranan &"%' AND yazi like '%"& aranan &"%'"&_
" union "&_
" select baslik, yazi from c where baslik like '%"& aranan &"%' AND yazi like '%"& aranan &"%'"&_
" union "&_
" select baslik, yazi from d where baslik like '%"& aranan &"%' AND yazi like '%"& aranan &"%'"&_
" union "&_
" select baslik, yazi from e where baslik like '%"& aranan &"%' AND yazi like '%"& aranan &"%'"&_
" union "&_
" select baslik, yazi from f where baslik like '%"& aranan &"%' AND yazi like '%"& aranan &"%'"&_
" union "&_
" select baslik, yazi from g where baslik like '%"& aranan &"%' AND yazi like '%"& aranan &"%'"
__________________
"oturduğum mahallenin yolları çamurluydu, boyalı ayakkabı giysem bile, o yollardan geçtikten sonra çamurlanmamaları mümkün değildi. hayatım da böyle." yılmaz güney http://www.sipidik.com |
|
|
|
|
|
#5 (permalink) |
|
Üyelik Tarihi: 14.06.2004
Yer: Ege'nin en büyük köyü
Yaş: 26
Mesaj: 574
|
Re: SQL ve birden çok tabloda aynı anda arama olayı
Veritabanımızda a, b, c, d, e, f gibi tablolarımız olsun. Ve tüm bu tabloların içinde de baslik ve yazi gibi iki tane alan bulunsun. SQL kullanarak tüm bu alanlarda aynı anda nasıl arama yaptırabilirim. Tek bir tablo da istediğim alanda istediğim şekilde arama yaptırabiliyorum ama aynı anda bu a, b, c, d, e, f tabloları içinde ki baslik ve yazi alanlarında arama yaptırtamıyorum, deli olacağım.
2 gündür bu SQL yüzünden neler çekiyorum. Ufacık bir tek tırnak, virgün, ya da & işareti yüzünden of of olmuyor ya ... "absconder arkadaşımın verdiği kodların ıncığını cınğını çıkardım, mutlaka bir yerde hata veriyor" Benim kodlarım ise bu ; Kod:
<% ara = Request.form("ara") if not ara = "" then dnsname= "Data Source=" & server.Mappath("veritabani.mdb") & ";Provider=Microsoft.Jet.OLEDB.4.0;" Set Conn = server.CreateObject("ADODB.Connection") Conn.Open dnsname set RS = Conn.Execute("SELECT baslik, yazi FROM a WHERE yazi LIKE '%" & ara & "%' or baslik LIKE '%" & ara & "%' ORDER BY baslik DESC") If not RS.eof then rs.movefirst Do response.write "<table width=100% border=0 cellpadding=0 cellspacing=1>" response.write "<tr>" response.write "<td width=100% class=baslik>" response.write RS("baslik") response.write "</td>" response.write "</tr>" response.write "<tr>" response.write " <td width=100% ><br>" response.write "</tr>" response.write " </td>" response.write "<tr>" response.write " <td width=100% class=yazi>" fu = Left(rs("yazi"), 250) fu = replace(fu,ara,"<b>******</b>") response.write fu response.write " ..." response.write "</td>" response.write "</tr>" response.write "<tr>" response.write "<td width=100% >" response.write "<hr color=#C6C7C6 size=1>" response.write "</td>" response.write "</tr>" response.write "</table>" Rs.movenext Loop until RS.eof End if Conn.Close Set Conn = Nothing end if %> Ve inanın çıldıracağım, hiç bir SQL koduyla bu kadar uğraşmadım, o nedenle biraz sinirliyim. Sanırım, benimde tatile ihityacım var. Düğün dü, işler di, evlilikti derken, kafam durmuş. Daha önce yapabildiklerimi bile yapamıyorum. Bu kadar aptal olamam ya. Lütfen, yardımcı olabilirseniz sevinirim. İyi çalışmalar ...
|
|
|
|
|
|
#6 (permalink) |
|
Üyelik Tarihi: 06.07.2001
Yer: Ankara
Yaş: 33
Mesaj: 679
|
Re: SQL ve birden çok tabloda aynı anda arama olayı
bizler bu tip şeylerle incinecek insanlar değiliz ki, ayrıca birak bizi kim kızar ki böyle şeye
. benim merak ettiğim altyapıda bir şeyi yanlış yapıyorsun galiba. genelde bu kadar çok join'e ihtiyaç duyulmaz.mesela siir,yazi,makale,haber diye tablolarin olsun ve bunlarda hepsinde ayrı olarak baslik,yazi alanları bulunsun sen bir tane baslik aramak icin bu 4 tabloda arayacağım diye boşuna yoruluyorsun gibi geliyor bana. formda bir tanede select box olur hangi tabloda arama yaptıracağınıda ordan şeçtirirsin yazi ise yazida,makale ise makalede gibi. neyse diyelim ki ihtiyacın oldu joinlerle uğraşmak yerine en temelde demişsin ya 1 tanede sorunsuz şekilde yapabiliyorum diye alt alta 6 tane sorgu yap kim tutarki seni. bu kayıt sayısına bağlı olarak 6 joinden daha performanslı olur. join yapmak her zaman biraz pahalıdır. joinle,union ile olsun diyorsan tablolardan örnek data göndermen vakti olan birisinin SQL kodunu yazmasına yardımcı olabilir. ama dedigim gibi performans göz önünde bulundurularak bu joinden kaçınılması gerekir bana göre. saygılar iyi çalışmalar. |
|
|
|
|
|
#7 (permalink) |
|
Üyelik Tarihi: 14.06.2004
Yer: Ege'nin en büyük köyü
Yaş: 26
Mesaj: 574
|
Re: SQL ve birden çok tabloda aynı anda arama olayı
Arkadaşlar, bu combo box olayı benimde başından beri düşündüğüm ve daha önce yaptığım ve yapabildiğim birşey. Ancak, şuan yana yana coder olmadığım için kodlarla uğraşmamın ve aramamın nedeni, bu kodların tamamen veritabanı sistemi olan bir şirket web sayfasının site içi arama kısmında kullanılacak. Combo Box koyup, arama yaptırmak kabalık olur. Nerede arayacaksın zaten 8-10 sayfa var. Combo Box olsa adam şurda arayacağım deyince a tablosu, burda deyince b tablosu gelir ama combo box kullanamam.
Bir de sorunum şu; "ben coder değil, tasarımcıyım." Kod bilgim %40 vs. dir. Üstelik SQL bilgim %5 'dir. ![]() sorun ve hata şurda bana göre; Kod:
set RS = Conn.Execute("SELECT baslik, yazi FROM a WHERE yazi LIKE '%" & ara & "%' or baslik LIKE '%" & ara & "%' ORDER BY baslik DESC")
Burada a yazan yerde; a and b and c and d and e and f vs. gibi a & b & c & d & e & f vs gibi ya da a or b or c or d or e or f vs. gibi yada a, b, d, e, f vs. gibi birşey olmalı ama denemem gereken herşeyi denedim, olmuyor. Bir tek işaret nelere kadir. Ayrıca, "1 tanede sorunsuz şekilde yapabiliyorum diye alt alta 6 tane sorgu yapıp" ta başında da denedim ama yine olmadı. Hiçbir kodla bu kadar uğraştığımı bilmiyor ve hatırlamıyorum. Arkadaşlarım, vakti olan birisi Lütfen eksiğim olan kodu tamamlarsa çok dua edeceğim. Yardımcı olacağınızdan şüphem yok, iyi çalışmalar. |
|
|
|
|
|
#8 (permalink) |
|
Üyelik Tarihi: 09.12.2000
Yer: istanbul
Yaş: 30
Mesaj: 1,947
|
Re: SQL ve birden çok tabloda aynı anda arama olayı
burada hata verebilcek tek nokta, alan adlarının yada tablo adının yanlış yazılmasından olabilir. onun dışında yapı doğrudur. ya a tablosu diye birşey yoktur, ya baslik ve yazi alan adları yanlıştır. bence sadece execute ettiğinde oluşan hata kodunu yazarsan daha fazla yardımcı olabiliriz.
bunun dışında union kullndığında sonuçta aynı alan sayısı kadar -yani select ile from arasında- eşit sayıda ve eşit yapıda alanlar seçilmelidir.
__________________
"oturduğum mahallenin yolları çamurluydu, boyalı ayakkabı giysem bile, o yollardan geçtikten sonra çamurlanmamaları mümkün değildi. hayatım da böyle." yılmaz güney http://www.sipidik.com |
|
|
|
| Sponsorlu Bağlantılar | |
|
Zoque.Forum
Reklam
|
|
Zoque'a hoşgeldiniz!