Autor Zpráva
Dlahacz
Profil *
Dobrý den,
chtěl bych se zeptat z jakého důvodu my tato query zvojuje výsledek u prvního nalezeného :
SELECT 
DISTINCT (`p`.`id`), 
( ( 12 * MATCH(`p`.`name`) AGAINST ('Lékařská psychologie' IN BOOLEAN MODE)) + 
( 8 * MATCH(`p`.`year`) AGAINST ('Lékařská psychologie' IN BOOLEAN MODE)) + 
( 8 * MATCH(`a`.`name`) AGAINST ('Lékařská psychologie' IN BOOLEAN MODE)) + 
( 1 * MATCH(`c`.`name`) AGAINST ('Lékařská psychologie' IN BOOLEAN MODE)) + 
( 5 * MATCH(`p`.`publisher`) AGAINST ('Lékařská psychologie' IN BOOLEAN MODE)) + 
( 5 * MATCH(`p`.`stock`) AGAINST ('Lékařská psychologie' IN BOOLEAN MODE)) + 
( 5 * MATCH(`p`.`isbn`) AGAINST ('Lékařská psychologie' IN BOOLEAN MODE)) + 
( 3 * MATCH(`p`.`note`) AGAINST ('Lékařská psychologie' IN BOOLEAN MODE)) ) 
AS relevance
FROM `products` AS `p` 
LEFT JOIN `authors_assign` AS `aa` on `aa`.`products` = `p`.`id` 
LEFT JOIN `authors` AS `a` on `a`.`id` = `aa`.`authors` 
LEFT JOIN `categories_assign` AS `cc` on `cc`.`products` = `p`.`id` 
LEFT JOIN `categories` AS `c` on `c`.`id` = `cc`.`categories` 
WHERE 
( MATCH(`a`.`name`) AGAINST ('Lékařská psychologie' IN BOOLEAN MODE) OR 
MATCH(`c`.`name`) AGAINST ('Lékařská psychologie' IN BOOLEAN MODE) OR 
MATCH(`p`.`name`, `p`.`note`, `p`.`publisher`, `p`.`stock`, `p`.`isbn`, `p`.`year`) AGAINST ('Lékařská psychologie' IN BOOLEAN MODE) OR `p`.`id`='Lékařská psychologie' ) 
ORDER BY relevance desc, id desc 
LIMIT 12 
OFFSET 0

výsledek je následující
17431 27.742284297943115
17431 24
25668 15.742284297943115
25568 15.742284297943115
25010 15.742284297943115
24857 15.742284297943115
24855 15.742284297943115
24698 15.742284297943115
24697 15.742284297943115
24666 15.742284297943115
24657 15.742284297943115
24656 15.742284297943115

Děkuji mnohokrát


tak už jsem přišel na to, že to dělá jen, když je to ve více kategoriích a jedna z nich obsahuje něco z hledaného, v tomto případě 'Lékařská psychologie' a kategorie obsahuje "Psychologie / Sociologie / Pedagogika", jak se to dá řesit? myslej sem že by to mělo vyřešit to DISTINCT (`p`.`id`), děkuji
Kajman_
Profil *
Celý dotaz můžete obalit do závorky a nad tím udělat dotaz s group by id.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: