MySQL UNION и как несколько таблиц. # 1064 Mysql - PullRequest
0 голосов
/ 16 июня 2020

Спасибо, что прочитали мой вопрос. Я пытаюсь соединить 3 столбца нескольких таблиц вместе, а затем найти столбец nameProduct, соответствующий запросу LIKE. Все таблицы имеют разные столбцы и выглядят как 3 столбца: имя, идентификатор и рейтинг. Это мой код:

(
    SELECT
        nameProduct,
        rate,
        idProduct
    FROM
        tblaptoplist 

)
UNION
    (
    SELECT
        nameProduct,
        rate,
        idProduct
    FROM
        tbcpulist 
)
UNION
    (
    SELECT
        nameProduct,
        rate,
        idProduct
    FROM
        tbgraphicslist
)
UNION
    (
    SELECT
        nameProduct,
        rate,
        idProduct
    FROM
        tbpccaselist 
)
UNION
    (
    SELECT
        nameProduct,
        rate,
        idProduct
    FROM
        tbradiatorslist 
)
UNION
    (
    SELECT
        nameProduct,
        rate,
        idProduct
    FROM
        tbramlist 

)WHERE nameProduct LIKE 'Asus'
;

И MySQL было сообщено:

#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'WHERE
    nameProduct LIKE 'Asus' LIMIT 0, 25' at line 54

Что я делаю не так? Пожалуйста, помогите мне

1 Ответ

0 голосов
/ 16 июня 2020

Вы не можете напрямую применить WHERE к результату UNION. Вы можете фильтровать запросы для каждого подвыбора или заключать результат UNION в SELECT:

SELECT *
  FROM (
      (
      SELECT
        nameProduct,
        rate,
        idProduct
      FROM
        tblaptoplist 
      )
      UNION ...
  ) AS r
 WHERE r.nameProduct LIKE 'Asus'
...