Vyhladávanie v dvoch tabuľkách

Programovacie jazyky, rady, poradňa...
miso250593
Medium Expert
Medium Expert
Používateľov profilový obrázok
Príspevky: 89
Registrovaný: 11 júl 2008, 16:53
Kontaktovať používateľa:

Vyhladávanie v dvoch tabuľkách

Príspevok od používateľa miso250593 »

Ahojte, situácia je takáto
mám dve tabuľky

1. Autory, v nich mam položky
autor_id
autor_meno

2. Polozky
polozka_id
polozka_autor
polozka_nazov
...


ide o to že mam vyhľadávacie pole, kde zadám aj názov autora a aj položky
teda dám hľadať "nejaky autor nejaku polozku"

ako by ste taketo niečo riešili?
crusher
Novice
Novice
Príspevky: 6
Registrovaný: 04 jún 2010, 15:02

Re: Vyhladávanie v dvoch tabuľkách

Príspevok od používateľa crusher »

Jednoducho prehladavas vsetky polia z oboch tabuliek a zobrazujes len vysledky riadkov, kde sa to hladane slovo autora alebo polozky nachadza.
markus
Light Professional
Light Professional
Používateľov profilový obrázok
Príspevky: 950
Registrovaný: 24 feb 2005, 23:53

Re: Vyhladávanie v dvoch tabuľkách

Príspevok od používateľa markus »

zalezi tiez od vysledku vyhladavania

ak chces nieco ako je na csfd ze zadas nieco do vyhladavania a vyhodi ti to zvlast hercov(autor) a zvlast filmy(polozky)
tak to urobis normalne dvoma select-ami

ak tie tabulky spojis podla napr. autora tak potom jeden select a where podmienka
where polozka_autor like(%premenna%) or polozka_nazov like(%premenna%)

ked presnejsie zadefinujes co potrebujes da sa poradit viac
miso250593
Medium Expert
Medium Expert
Používateľov profilový obrázok
Príspevky: 89
Registrovaný: 11 júl 2008, 16:53
Kontaktovať používateľa:

Re: Vyhladávanie v dvoch tabuľkách

Príspevok od používateľa miso250593 »

no budem zobrazovať v podstate výsledky z tabulky Polozky

keby nemam aj tabuľku autory tak by som to vyberal selectom z Polozky
markus
Light Professional
Light Professional
Používateľov profilový obrázok
Príspevky: 950
Registrovaný: 24 feb 2005, 23:53

Re: Vyhladávanie v dvoch tabuľkách

Príspevok od používateľa markus »

ked budes zobrazovat len polozky z tabulky Polozky tak je to snad jednoduch nie?

select * from Polozky
where polozka_autor like(%premenna%) or polozka_nazov like(%premenna%)

tabulka Autory ta potom nemusi zaujimat
miso250593
Medium Expert
Medium Expert
Používateľov profilový obrázok
Príspevky: 89
Registrovaný: 11 júl 2008, 16:53
Kontaktovať používateľa:

Re: Vyhladávanie v dvoch tabuľkách

Príspevok od používateľa miso250593 »

v tom polozka_autor mam id autora

ale myslím asi takto
SELECT a.autor_meno, p.* FROM Autory a, Polozky p WHERE (a.autor_meno like(%premenna%) OR p.polozka_nazov like(%premenna%)) AND p.polozka_autor = a.autor_id
lenže ja chcem, keďže povedzme autor môže mať aj viac slov, tak by som to rozdelil podla medzier, a potom hľadal jednotlive, slova, lenže týmto spôsobom by mi našlo všetko možné, a tie ktoré by som chcel by možno boli až na poslednej strane, ono ak by šlo nejako usporiadať podľa počtu najdených zhôd

dúfam že to nieje až moc nezrozumitelné
markus
Light Professional
Light Professional
Používateľov profilový obrázok
Príspevky: 950
Registrovaný: 24 feb 2005, 23:53

Re: Vyhladávanie v dvoch tabuľkách

Príspevok od používateľa markus »

zaprve pokial mas v polozka_autor id autora tak premenovat na id_autor, aby si sa v tom vyznal nielen ty, ale aj ten co v tom bude robit po tebe

takze ked niekto zada do policka Pavol Gašparovič Hlbina tak to pojde po kazdom slove?
a ked niekto zada Smelý Zajko v Afrike, co spravis s "v"?

to co chces sa uz neda spravit obyc selectom
treba sa zamysliet ci sa to opalti - diakritika, predlozky, spojky ...

polozku by sa dalo rozdelit na slova a ist s like po riadkoch a zapisovat si vysledky do tmp tabuly a zobrazit podla poctu zhod v danom riadku, bolo by ale asi najlepsie vyradit kratke vyrazy aj ked to tiez nieje lahke, kedze 'alebo' ma 5 znakov a 'Jan' iba 3
miso250593
Medium Expert
Medium Expert
Používateľov profilový obrázok
Príspevky: 89
Registrovaný: 11 júl 2008, 16:53
Kontaktovať používateľa:

Re: Vyhladávanie v dvoch tabuľkách

Príspevok od používateľa miso250593 »

Ďakujem zamyslím sa nad tým, a asi to hodim do jedného stĺpca :)
Preetro
Light Star
Light Star
Používateľov profilový obrázok
Príspevky: 269
Registrovaný: 16 nov 2005, 19:40
Bydlisko: škatuľka od topánok

Re: Vyhladávanie v dvoch tabuľkách

Príspevok od používateľa Preetro »

Ak ta tabulka autori obsahuje len id_autora a autor_meno, tak je uplne zbytocna a v tabulke polozky si daj namiesto id_autora autor_meno
markus
Light Professional
Light Professional
Používateľov profilový obrázok
Príspevky: 950
Registrovaný: 24 feb 2005, 23:53

Re: Vyhladávanie v dvoch tabuľkách

Príspevok od používateľa markus »

Preetro napísal:Ak ta tabulka autori obsahuje len id_autora a autor_meno, tak je uplne zbytocna a v tabulke polozky si daj namiesto id_autora autor_meno
nieje zbytocna, jeden autor moze mat aj 100 knih a potom by sa zbytocne zvacsoval objem dat, takto je to urcite lepsie
Napísať odpoveď