PDA

Pogčedajte punu verziju : Cudni rezultati


Bojan Zivanovic
28. 03. 2006., 23:28
Tabela orders ima 200 redova, a join daje 250 000 rezultata. Pa vi vidite...

select DISTINCT o.orders_id, o.date_purchased, o.delivery_name, o.billing_name, s.orders_status_name, pd.products_description, ovh.comments

from orders o, orders_status s, orders_vendors ov, orders_vendors_status_history ovh, products_description pd, products p

where ov.vendors_id = '1' and o.orders_id = ov.orders_id and ov.orders_status = s.orders_status_id and s.language_id = '1' and ovh.orders_id = o.orders_id and p.products_id = pd.products_id and MATCH(o.customers_name) AGAINST ('test' IN BOOLEAN MODE)

order by orders_id DESC

Probao sam query bez fulltext searcha, bez nekih where uslova, ne vredi, broj rezultata se samo popne.. znaci jedan red se ponavlja 300 puta, a phpmyadmin pokazuje ovako stranice: 1,2,3,4,5,6,7,8,9,1231,4353...Cudno

DejanVesic
29. 03. 2006., 00:00
Tabela orders ima 200 redova, a join daje 250 000 rezultata. Pa vi vidite...
...
Probao sam query bez fulltext searcha, bez nekih where uslova, ne vredi, broj rezultata se samo popne.. znaci jedan red se ponavlja 300 puta, a phpmyadmin pokazuje ovako stranice: 1,2,3,4,5,6,7,8,9,1231,4353...Cudno

Nije ti dobar upit - svaki red iz Orders tabele će se ponoviti barem onoliko puta koliko imaš i proizvoda, jer products_description pd, products p vise u vazduhu - nigde se ne povezuju sa orders tabelom.

jablan
29. 03. 2006., 10:09
Ja ti savetujem da koristiš INNER JOIN notaciju, na taj način neće moći da ti promakne neki uslov za spajanje, a i mnogo je preglednije.