nemoj da se ljutis al aj da probamo malo sintaksu da dovedemo u red ...
Citat:
Domacin covek:
Kada zadam da mi sql vrati sva tri parametra tj. IME i E-ADRESU i REZULTAT to sam uspeo da dobijem
MySQL ti "VRACA" slogove koji odgovaraju zahtevu a ono st je u slogu je ono sto stavis posle SELECT ... dakle sa
Code:
SELECT * FROM ...
MySQL ti vraca SVE kolone iz SVIH tabela iz kojih radis upit grupisane u sve slogove koji odgovaraju zahtevu ...
posto kapiram da nije to ono sto hoces, probaj da formulises to drugacije .. posto ti mysql nece vratiti nikakve parametre, vratice ti slogove koji odgovaraju nekom zahtevu.
osnovna stvar od koje kreces je "ako ne umes recima da objasnis sta hoces - kako ces tek to da objasnis sql-om" dakle zahtev koji hoces da objasnis sql-u probaj da definises recima pa ako ti onda ne uspe da ga napises u sql-u lako ce ti vec neko pomoci, ali ovako sa "ja dodam u meni" nece da ide ..
Citat:
Code:
SELECT *
FROM spisak
WHERE
REZULTAT_CLANA <= colname AND IME_CLANA LIKE colname2 AND E-MAIL_CLANA LIKE colname3
ovo ce da ti vrati slogove koji imaju rezultat manji ili jednak zadatom, i tacno ime i mail clana
Citat:
Code:
SELECT *
FROM spisak
WHERE REZULTAT_CLANA <= colname OR IME_CLANA LIKE colname2 OR E-MAIL_CLANA LIKE colname3
ovo ce da ti vrati slogove koji imaju ILI rezultat manji ILI ime clana ILI email clana kao zadata vrednost
dakle razlika ovog i prethonog je sto prethodni trazi sva tri "pogodjena" elementa a ovaj drugi trazi da je bilo koji od 3 elemta "pogodjen"
Citat:
Čak i kombinacija ta dva radi kako treba :
kombinacija ta dva nema smisla !?
Citat:
Code:
SELECT *
FROM spisak
WHERE (REZULTAT_CLANA <= colname AND IME_CLANA LIKE colname2 AND E-MAIL_CLANA LIKE colname3)
OR (REZULTAT_CLANA <= colname OR IME_CLANA LIKE colname2 OR E-MAIL_CLANA LIKE colname3)
kao sto rekoh ... ili su pogodjeni sva tri ili je pogodjen bar jedan ... potpuno besmisleno posto ako su pogodjena sva tri sigurno je pogodjen bar jedan.
vrednosti koje vraca prvi upiut su podskup vrednosti koje vrada drugi upit te ovaj upit sa A U B gde je A "nadskup" B vraca A
Citat:
A evo sta bi meni trebalo :
IME i E-ADRESA i REZULTAT = dobijem traženi rezultat
IME i E-ADRESA (bez REZULTAT) = i tu sam uspeo :
u ovom slucaju, rezultat je nebitan .. tako da napravi samo upit sa ime i adresa .. posto ako ces da gadjas "sa i bez rezultata" to je opet podskup + nadskup sto je uvek = nadskup dakle treba ti samo bez rezultata
Citat:
Code:
SELECT *
FROM spisak
WHERE (REZULTAT_CLANA <= colname AND IME_CLANA LIKE colname2 AND E-MAIL_CLANA LIKE colname3)
OR (REZULTAT_CLANA <= colname AND IME_CLANA LIKE colname2 )
ovaj upit ne odgovara malopredjasnjoj izjavi posto je ovo
(rezultat + ime + email) ili (rezultat + ime)
sto je jednako (rezultat + ime)
dakle ceo prvi deo upita je beskoristan
Citat:
E sada bi mi trebalo :
IME i (npr. bez E-ADRESA) REZULTAT , (ovaj put bez parametra za IME) E-ADRESA i REZULTAT
ako shvataš sada šta bi meni trebalo . Evo lupiću ovo ne radi ali bar da pokušam da ti objasnim na sta mislim:
Code:
SELECT *
FROM spisak
WHERE (REZULTAT_CLANA <= colname AND IME_CLANA LIKE colname2 AND E-MAIL_CLANA LIKE colname3)
OR (REZULTAT_CLANA <= colname AND IME_CLANA LIKE colname2 ) OR (IME_CLANA <= colname2 AND E-MAIL_CLANA LIKE colname3 )
dakle opet je objasnjenje - sta ti treba - nedovoljno ... zato ti i ne ide da napises upit...
napisao si
(rezultat + ime + mail) ili (rezultat + ime) ili (ime + mail)
prvi deo upita je redundantan (beskoristan) zato sto .. ako je pogodio (rezultat+ime+mail) sigurno je pogodio i (rezultat+ime) i (ime+mail) tako da je (rezultat+ime+mail) podskup (rezultat+ime) ili (ime+mail) te taj upit mozes da napises kao
Code:
SELECT * FROM spisak WHERE
(REZULTAT_CLANA <= colname AND IME_CLANA LIKE colname2 )
OR (IME_CLANA <= colname2 AND E-MAIL_CLANA LIKE colname3 )
sto ce vratiti rezultat ako su pogodjenje kombinacije (rezultat, ime) ili (ime, email). mozes eventualno da dodas i kombinaciju (rezultat, email) pa da napises ovako:
Code:
SELECT * FROM spisak WHERE
(REZULTAT_CLANA <= colname AND IME_CLANA LIKE colname2 )
OR (IME_CLANA <= colname2 AND E-MAIL_CLANA LIKE colname3 )
OR (REZULTAT_CLANA <= colname AND E-MAIL_CLANA LIKE colname3 )
tako da ti prolaze parovi (rezultat, ime) ili (rezultat, email) ili (ime, email) dakle od 3 parametra vratice slogove koji imaju 2 pogodjena