MySQL FULLTEXT Оценка из нескольких таблиц - PullRequest
0 голосов
/ 29 декабря 2010

Я пытаюсь найти в базе данных MySQL записи о техобслуживании грузовых автомобилей. Таблицы, которые я ищу, - это Maintenance, Truck и maintenance_parts. Что мне нужно сделать, чтобы получить оценку FULLTEXT из таблиц Truck и Maintenance_Parts, чтобы добавить ее к оценке из таблицы обслуживания?

SELECT maintenance_id, some_id, type_code, service_date, mileage, mg_id, mg_type, comments, work_done,
    MATCH(comments, work_done) AGAINST( 'valve tire' ) AS score
    FROM maintenance
    WHERE  type_code = 'truck'
    AND some_id IN (
        SELECT truck_id FROM truck 
        WHERE MATCH( truck_number, make, model, engine, vin_number, transmission_number, comments) AGAINST( 'P' )
        OR truck_number LIKE '%P%'
    )
    AND maintenance_id IN( 
        SELECT maintenance_id FROM maintenance_parts WHERE MATCH( part_num, part_desc, part_ref) AGAINST( 'valve tire' )
    )
    OR MATCH(comments, work_done) AGAINST( 'valve tire' )
    AND status = 'A' ORDER BY score DESC LIMIT 0, 30

1 Ответ

0 голосов
/ 30 декабря 2010

Вам придется переписать запрос, чтобы исключить подзапросы, и вместо этого сделать это с помощью объединений. Как только полнотекстовые поиски подзапросов будут перенесены на родительский запрос, вы сможете объединить оценки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...