MySQL UNION和喜欢多表。#1064 Mysql

问题描述 投票:0回答:1

感谢阅读我的问题.我是想把多个表的3列连接在一起,然后找到匹配LIKE请求的nameProduct列.所有表都有不同的列,看起来就像3列:name,id和rate.这是我的代码。

(
    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

我做错了什么?请帮助我

mysql sql union sql-like
1个回答
0
投票

你不能应用 WHERE 以至于 UNION 直接进行查询。你可以对每个子选择进行过滤查询,或者在SELECT中对UNION的结果进行包装。

SELECT *
  FROM (
      (
      SELECT
        nameProduct,
        rate,
        idProduct
      FROM
        tblaptoplist 
      )
      UNION ...
  ) AS r
 WHERE r.nameProduct LIKE 'Asus'
© www.soinside.com 2019 - 2024. All rights reserved.