[ NikolaVeber @ 17.12.2003. 14:44 ] @
Pozdrav !

Treba da pretrazujem vise povezanih tabela (povezanih id-om) u fulltext modu.
Do sada sam imao sledeci kod :
Code:

"SELECT *, MATCH ( $polja ) AGAINST ('$izraz') AS score FROM tabela WHERE MATCH ( $polja ) AGAINST ('$izraz') ORDER BY score DESC"; 

(polja se genericki definisu).

Sada treba da u odredjenim tabelama dodam relaciju tipa
Code:
"SELECT *, MATCH ( $polja ) AGAINST ('$izraz') AS score FROM tabela 
LEFT JOIN tabela2 ON (tabela.id2 = tabela2.id)
WHERE MATCH ( $polja ) AGAINST ('$izraz') ORDER BY score DESC"; 


ili slicno. Potpuno sam zbunjen :(

trenutno dobijam
Code:
Column: 'kommentar' in field list is ambiguous

gresku, sa kodom koji odgovara ovom odozgo.
[ noviKorisnik @ 17.12.2003. 15:09 ] @
Ta greška se javlja kad imaš u obe tabele polja s istim nazivom, pa ne može da se odluči koje da gleda.
Ako nije problem, preimenuj kolonu 'kommentar' jedne tabele.
[ NikolaVeber @ 17.12.2003. 15:10 ] @
a jesi li radio vec sa ovom kombinacijom, join + fulltext ?
[ leka @ 17.12.2003. 15:18 ] @
Nikola, gledaj sta ti je Dejan rekao, i gledaj poruku o g resci koju dobijas i shvatices problem.
[ noviKorisnik @ 17.12.2003. 15:18 ] @
Jok, no probaj "SELECT tabela.*, tabela2.*,...

Čini mi se da je ovo dovoljno da izbegneš grešku.
[ NikolaVeber @ 17.12.2003. 15:26 ] @
Izbegao sam tu gresku zadavanjem polja kao imeTabele.imePolja.

Ali kako da uputim MACH da trazi u drugoj tabeli ? (radi ok, ali trazi samo u 1. tabeli)
Da li nekako mogu da uradim JOIN pre prvog MACH-a ?
[ noviKorisnik @ 17.12.2003. 16:41 ] @
Koliko sam skontao, u MATCH mozes da navedes listu polja. Tekst ove liste cuvas u promenljivoj $polja. Nista te ne kosta da probas:

$polja = 'tabela.kommentar, tabela2.kommentar,...

Pored toga sto nisam do sad koristio MATCH, nisam koristio ni JOIN, vec sam tabele spajao lepo, prostacki. Mada, cini mi se da cu morati malo da procitam uputstvo za upotrebu jer mi se javljaju lagano komplikovaniji zahvati koje resavam visestrukim upitima, a to smara.
[ NikolaVeber @ 17.12.2003. 16:49 ] @
sada cu bas da probam... hteo sam i ja to da resim visestrukim upitima, ali mi se cini da necu da smorim samo ja, nego i server :)
[ noviKorisnik @ 18.12.2003. 09:49 ] @
Nikola, radi li sade?
[ NikolaVeber @ 18.12.2003. 10:42 ] @
Ma jok (nisam sada na poslu, ne znam tacno koju gresku vraca, cini mi se uknown table table2 in field list).

Logicki bi trebalo (bar tako mislim) da upit glasi : izaberi sve iz tabele1 join left tabela2 on (uslov da je id u t2 = nekom polju u t1) match (spisak svih polja, imena tabela.polje) against trazeni izraz, pa jos to da se sortira po sorcu i to je to :D

Samo izgleda da ce to ostati nedovrseno, jer je ovo trebalo da zameni partizanski search sa dzokerima ( %izraz% ) u kojem je koriscen JOIN LEFT. A sada svejedno pretrazujem sa fulltext obe tabele.