Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Pretraga cele baze, vraca samo deo rezultata

[es] :: MySQL :: Pretraga cele baze, vraca samo deo rezultata

[ Pregleda: 2039 | Odgovora: 19 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

peca89bg
Beograd

Član broj: 202034
Poruke: 354
95.180.55.*



+6 Profil

icon Pretraga cele baze, vraca samo deo rezultata09.10.2012. u 00:23 - pre 139 meseci
Zdravo svima,

DB dump je u prilogu.

Ovim upitom izvlacim sve iz baze:
Code (sql):

SELECT
    main_section.naziv_fr AS main_section_naziv,
    sub_section_1.naziv_fr AS sub_1_naziv,
    sub_section_2.naziv_fr AS sub_2_naziv,
    sub_section_2.des_fr AS sub_2_des,
    sub_section_2.rich_des_fr AS sub_2_rich,
    sub_section_2.rich AS ima_texta,
    sub_section_2.linked, sub_section_2.url,
    sub_section_2.link_fr AS anchor,
    sub_section_3.text_fr AS sub_3_text
        FROM
            main_section JOIN sub_section_1 ON main_section.id= sub_section_1.id_main
            JOIN sub_section_2 ON sub_section_2.id_sub_1 = sub_section_1.id
            JOIN sub_section_3 ON sub_section_3.id_sub_2 = sub_section_2.id
                WHERE
                    main_section.naziv_fr LIKE '%%' OR
                    sub_section_1.naziv_fr LIKE '%%' OR
                    sub_section_2.naziv_fr LIKE '%%' OR
                    sub_section_2.des_fr LIKE '%%' OR
                    sub_section_2.rich_des_fr LIKE '%%' OR
                    sub_section_2.link_fr LIKE '%%' OR
                    sub_section_3.text_fr LIKE '%%'
 


I to lepo radi ali samo donekle.

Kada trazim 'main_naziv " id je 3 iz tabele main_section, u tabeli sub_section_1 imam dete za ovaj ovaj id a to su 13 i npr 14 i dalje u tabeli sub_section_2 imam redove ciji je parent id 13 i 14 iz tabele sub_section_1. E sada ovde nastaje problem jer mi se vrate svi redovi u kojima kolona naziv_fr nije blank a gde je blank te redove mi preskoci i ako za te redove uredno stoje parent id-s 13 ili 14.

Nije best projektovano ali radi mi posao skroz ok za moju app za ostale stvari ali eto ova pretraga me ubi u pojam.
Ne znam koliko sam dobro objasnio jer me glava uzasno mnogo boli posle bakcanja cele veceri oko ovoga :) :)

Recimo kada mi search term = '' treba da mi vrati sve iz baze ali mi vraza za nekih 15 komada manje a to su upravo oni redovi u kojima mi je naziv_fr ili naziv_en u sub_section_2 prazan.
Mozda je sada jasnije :)




[Ovu poruku je menjao peca89bg dana 09.10.2012. u 15:09 GMT+1]
Prikačeni fajlovi
 
Odgovor na temu

bogdan.kecman
Bogdan Kecman
"specialist"
Oracle
srbistan

Član broj: 201406
Poruke: 15887
95.180.61.*

Sajt: mysql.rs


+2377 Profil

icon Re: Pretraga cele baze, vraca samo deo rezultata09.10.2012. u 06:15 - pre 139 meseci
sada nikako ne mogu da stignem da pogledam ovaj sql ali osnovno pitanje je da li ti je naziv_fr "prazan" (dakle "") ili ti je naziv_fr NULL ?

NULL like '%%" nije tacno, tu onda moras da uradis nesto tipa ako ti je prazan searchterm da uradis umesto like '%%', is null posto ako imas where like ... tu nikad neces dobiti vrednosti koje su prazan string...

brzo resenje ti je da te kolone stavis da budu not null defauilt '' i onda ce da budu prazne umesto null pa ce like '%%' da radi

 
Odgovor na temu

peca89bg
Beograd

Član broj: 202034
Poruke: 354
95.180.55.*



+6 Profil

icon Re: Pretraga cele baze, vraca samo deo rezultata09.10.2012. u 13:43 - pre 139 meseci
@bogdan.kecman

to sam prvo uradio ali opet nece.
Isto vraca 28 a treba 43, tih 15 su bas gde je naziv prazan.
 
Odgovor na temu

peca89bg
Beograd

Član broj: 202034
Poruke: 354
95.180.55.*



+6 Profil

icon Re: Pretraga cele baze, vraca samo deo rezultata09.10.2012. u 13:58 - pre 139 meseci
Mislio sam da je do sub_section_3 tabele jer i nju joinujem a bas tih 28rows su u njoj.
Sada kada sam je sklonio iz pretrage, opet isto, nikako da uhvati gde je naziv_en ili naziv_fr = '' iz tabele sub_section_2
 
Odgovor na temu

djoka_l
Beograd

Član broj: 56075
Poruke: 3445

Jabber: djoka_l


+1462 Profil

icon Re: Pretraga cele baze, vraca samo deo rezultata09.10.2012. u 14:03 - pre 139 meseci
Kada je search term prazan:

Code (sql):

SELECT
    main_section.naziv_fr AS main_section_naziv,
    sub_section_1.naziv_fr AS sub_1_naziv,
    sub_section_2.naziv_fr AS sub_2_naziv,
    sub_section_2.des_fr AS sub_2_des,
    sub_section_2.rich_des_fr AS sub_2_rich,
    sub_section_2.rich AS ima_texta,
    sub_section_2.linked, sub_section_2.url,
    sub_section_2.link_fr AS anchor,
    sub_section_3.text_fr AS sub_3_text
        FROM
            main_section JOIN sub_section_1 ON main_section.id= sub_section_1.id_main
            JOIN sub_section_2 ON sub_section_2.id_sub_1 = sub_section_1.id
            JOIN sub_section_3 ON sub_section_3.id_sub_2 = sub_section_2.id
 


Koliko komplikovano to može biti?
 
Odgovor na temu

peca89bg
Beograd

Član broj: 202034
Poruke: 354
95.180.55.*



+6 Profil

icon Re: Pretraga cele baze, vraca samo deo rezultata09.10.2012. u 14:06 - pre 139 meseci
Citat:
djoka_l: Kada je search term prazan:

Code (sql):

SELECT
    main_section.naziv_fr AS main_section_naziv,
    sub_section_1.naziv_fr AS sub_1_naziv,
    sub_section_2.naziv_fr AS sub_2_naziv,
    sub_section_2.des_fr AS sub_2_des,
    sub_section_2.rich_des_fr AS sub_2_rich,
    sub_section_2.rich AS ima_texta,
    sub_section_2.linked, sub_section_2.url,
    sub_section_2.link_fr AS anchor,
    sub_section_3.text_fr AS sub_3_text
        FROM
            main_section JOIN sub_section_1 ON main_section.id= sub_section_1.id_main
            JOIN sub_section_2 ON sub_section_2.id_sub_1 = sub_section_1.id
            JOIN sub_section_3 ON sub_section_3.id_sub_2 = sub_section_2.id
 


Koliko komplikovano to može biti?


Dao sam samo example da kada je prazan term da bi trebalo da vrati sve, posto se radi o search-u na site=u nece term uvek biti prazan.
 
Odgovor na temu

djoka_l
Beograd

Član broj: 56075
Poruke: 3445

Jabber: djoka_l


+1462 Profil

icon Re: Pretraga cele baze, vraca samo deo rezultata09.10.2012. u 14:12 - pre 139 meseci
Kada je prazan search term, tada nemoj da ubaciš where uslov, kada nije ubaci where uslov...
 
Odgovor na temu

peca89bg
Beograd

Član broj: 202034
Poruke: 354
95.180.55.*



+6 Profil

icon Re: Pretraga cele baze, vraca samo deo rezultata09.10.2012. u 14:16 - pre 139 meseci
Ok za to, ali kada searchterm nije prazan ne vraca mi redove gde je naziv ''
 
Odgovor na temu

bogdan.kecman
Bogdan Kecman
"specialist"
Oracle
srbistan

Član broj: 201406
Poruke: 15887
95.180.61.*

Sajt: mysql.rs


+2377 Profil

icon Re: Pretraga cele baze, vraca samo deo rezultata10.10.2012. u 07:24 - pre 139 meseci
Citat:
peca89bg:
DB dump je u prilogu.



gde je data ? to je samo struktura ... aj lepo zakaci i datu sa kojom to ne radi posto ceo ovaj thread prestaje da ima smisla
 
Odgovor na temu

peca89bg
Beograd

Član broj: 202034
Poruke: 354
95.180.55.*



+6 Profil

icon Re: Pretraga cele baze, vraca samo deo rezultata10.10.2012. u 10:08 - pre 139 meseci
Ok, evo dump-a. Neke sam rows sklonio sa email adresama i sl. Otkud znam :)
Prikačeni fajlovi
 
Odgovor na temu

bogdan.kecman
Bogdan Kecman
"specialist"
Oracle
srbistan

Član broj: 201406
Poruke: 15887
95.180.61.*

Sajt: mysql.rs


+2377 Profil

icon Re: Pretraga cele baze, vraca samo deo rezultata10.10.2012. u 10:44 - pre 139 meseci
cool, i kada pustis ovaj upit:

Code:

SELECT
    main_section.naziv_fr,
    sub_section_1.naziv_fr,
    sub_section_2.naziv_fr
        FROM
            main_section JOIN sub_section_1 ON main_section.id= sub_section_1.id_main
            JOIN sub_section_2 ON sub_section_2.id_sub_1 = sub_section_1.id
            JOIN sub_section_3 ON sub_section_3.id_sub_2 = sub_section_2.id 


sta ti fali od slogova u rezultatu
 
Odgovor na temu

peca89bg
Beograd

Član broj: 202034
Poruke: 354
95.180.55.*



+6 Profil

icon Re: Pretraga cele baze, vraca samo deo rezultata10.10.2012. u 10:49 - pre 139 meseci
Nigde mi ne uhvati red gde je rich = 1 iz tabele sub_section_2.
Bitan mi je taj podatak jer ako je 1 onda ispisujem rich_des_en ili rich_des_fr.
treba mi sa where jer pretraga na site-u pa nece da bude uvek emptu term.
 
Odgovor na temu

bogdan.kecman
Bogdan Kecman
"specialist"
Oracle
srbistan

Član broj: 201406
Poruke: 15887
95.180.61.*

Sajt: mysql.rs


+2377 Profil

icon Re: Pretraga cele baze, vraca samo deo rezultata10.10.2012. u 10:54 - pre 139 meseci
nebitan je where za pocetak ...

kazes da ti se ovih 7 ne pokazuje ?

mysql> select count(*) from sub_section_2 where rich=1;
+----------+
| count(*) |
+----------+
| 7 |
+----------+
1 row in set (0.00 sec)


 
Odgovor na temu

peca89bg
Beograd

Član broj: 202034
Poruke: 354
95.180.55.*



+6 Profil

icon Re: Pretraga cele baze, vraca samo deo rezultata10.10.2012. u 10:57 - pre 139 meseci
bas tako, nema nigde rich = 1 sve same nule :S
 
Odgovor na temu

bogdan.kecman
Bogdan Kecman
"specialist"
Oracle
srbistan

Član broj: 201406
Poruke: 15887
95.180.61.*

Sajt: mysql.rs


+2377 Profil

icon Re: Pretraga cele baze, vraca samo deo rezultata10.10.2012. u 11:03 - pre 139 meseci
stavi zadnji join da bude LEFT


...
LEFT JOIN sub_section_3 ON sub_section_3.id_sub_2 = sub_section_2.id
WHERE
...

i resices problem .. imas problem sto radis jon za sub_section_3.id_sub_2 = sub_section_2.id a

Code:

mysql> select id from sub_section_2;
+----+
| id |
+----+
| 11 |
| 35 |
| 33 |
| 42 |
| 12 |
| 13 |
| 14 |
| 15 |
| 16 |
| 17 |
| 18 |
| 19 |
| 20 |
| 21 |
| 22 |
| 25 |
| 26 |
| 27 |
| 32 |
| 36 |
| 37 |
| 38 |
| 39 |
| 40 |
| 41 |
| 49 |
| 50 |
| 54 |
| 43 |
+----+
29 rows in set (0.00 sec)

mysql> select id_sub_2 from sub_section_3;
+----------+
| id_sub_2 |
+----------+
|       12 |
|       13 |
|       14 |
|       15 |
|       16 |
|       17 |
|       18 |
|       19 |
|       20 |
|       21 |
|       22 |
|       25 |
|       26 |
|       27 |
|       36 |
|       37 |
|       38 |
|       39 |
|       40 |
|       41 |
|       50 |
+----------+
21 rows in set (0.00 sec)



dakle poklapa se samo 21:

Code:

mysql> select sub_section_3.id_sub_2, sub_section_2.id from sub_section_3, sub_section_2 where sub_section_3.id_sub_2 = sub_section_2.id;
+----------+----+
| id_sub_2 | id |
+----------+----+
|       12 | 12 |
|       13 | 13 |
|       14 | 14 |
|       15 | 15 |
|       16 | 16 |
|       17 | 17 |
|       18 | 18 |
|       19 | 19 |
|       20 | 20 |
|       21 | 21 |
|       22 | 22 |
|       25 | 25 |
|       26 | 26 |
|       27 | 27 |
|       36 | 36 |
|       37 | 37 |
|       38 | 38 |
|       39 | 39 |
|       40 | 40 |
|       41 | 41 |
|       50 | 50 |
+----------+----+
21 rows in set (0.00 sec)


i to je ono sto ti taj join vrati, ako hoces da imas i tamo gde nemas par, onda moras da radis left

Code:

mysql> select sub_section_2.rich from main_section JOIN sub_section_1 ON main_section.id= sub_section_1.id_main
    ->  JOIN sub_section_2 ON sub_section_2.id_sub_1 = sub_section_1.id
    ->  left JOIN sub_section_3 ON sub_section_3.id_sub_2 = sub_section_2.id;
+------+
| rich |
+------+
|    1 |
|    1 |
|    1 |
|    1 |
|    0 |
|    0 |
|    0 |
|    0 |
|    0 |
|    0 |
|    0 |
|    0 |
|    0 |
|    0 |
|    0 |
|    0 |
|    0 |
|    0 |
|    1 |
|    0 |
|    0 |
|    0 |
|    0 |
|    0 |
|    0 |
|    1 |
|    0 |
|    0 |
|    1 |
+------+
29 rows in set (0.00 sec)

mysql> 


ok?

 
Odgovor na temu

bogdan.kecman
Bogdan Kecman
"specialist"
Oracle
srbistan

Član broj: 201406
Poruke: 15887
95.180.61.*

Sajt: mysql.rs


+2377 Profil

icon Re: Pretraga cele baze, vraca samo deo rezultata10.10.2012. u 11:05 - pre 139 meseci
btw nisam gledao dalje, mozda jos neki od joinova mora da bude left .. zavisno od toga kakvi su podaci i sta oces ..
 
Odgovor na temu

peca89bg
Beograd

Član broj: 202034
Poruke: 354
95.180.55.*



+6 Profil

icon Re: Pretraga cele baze, vraca samo deo rezultata10.10.2012. u 11:23 - pre 139 meseci
To je to, kako li sam smetnuo to sa uma, da me bije covek samo :) :)

Hvala puno!
 
Odgovor na temu

bogdan.kecman
Bogdan Kecman
"specialist"
Oracle
srbistan

Član broj: 201406
Poruke: 15887
95.180.61.*

Sajt: mysql.rs


+2377 Profil

icon Re: Pretraga cele baze, vraca samo deo rezultata10.10.2012. u 11:30 - pre 139 meseci
left, right, outer ... ima toga ... treba savladati :D...

ako neko zna za neki dobar tutorijal za jonove sa dobrim primerima neka okaci... ja mislim da me bar jednom nedeljno neko pita za dobar tutorial za join i ja uvek ljude saljem na mysql dokumentaciju ali onaj tamo tutorijal je prilicno bedan :(
 
Odgovor na temu

peca89bg
Beograd

Član broj: 202034
Poruke: 354
95.180.55.*



+6 Profil

icon Re: Pretraga cele baze, vraca samo deo rezultata10.10.2012. u 11:43 - pre 139 meseci
Uvek imam left, outer, right u glavi ali jbg, blokada :)


Ja imam negde to po nekim sveskama boga samo boga pitaj gde je :)
Ako uspem da nadjem okacicu scan ovde, mada los mi rukopis :D
 
Odgovor na temu

bogdan.kecman
Bogdan Kecman
"specialist"
Oracle
srbistan

Član broj: 201406
Poruke: 15887
95.180.61.*

Sajt: mysql.rs


+2377 Profil

icon Re: Pretraga cele baze, vraca samo deo rezultata10.10.2012. u 11:47 - pre 139 meseci
ma pusti to iz sveski, mogu i ja da nacukam al nije to to ... sigurno ima negde na netu neki dobar manual sa slikama i slicno na koji mogu da se prosledjuju pocetnici ..
 
Odgovor na temu

[es] :: MySQL :: Pretraga cele baze, vraca samo deo rezultata

[ Pregleda: 2039 | Odgovora: 19 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.