mysql - MySQL UNION 和喜欢多表。#1064 mysql
问题描述
感谢您阅读我的问题。我正在尝试将多个表的 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
我究竟做错了什么?请帮我
解决方案
你不能直接申请WHERE
结果UNION
。您可以过滤每个子选择的查询或将 UNION 的结果包装在 SELECT 中:
SELECT *
FROM (
(
SELECT
nameProduct,
rate,
idProduct
FROM
tblaptoplist
)
UNION ...
) AS r
WHERE r.nameProduct LIKE 'Asus'
推荐阅读
- usb-drive - 在 Windows 7 上格式化笔式驱动器
- sql - 根据 2 列选择和过滤重复项
- ios - Swift:在计时器期间触发音效
- c# - RowStateChanged 事件中的索引超出范围,datagridview c#
- ios - Flurry 的正确桥接头是什么?
- java - 服务(java 文件)中的字段需要存储库类型的 bean
- php - PHP MySQL - 列出除 information_schema、mysql 之外的所有数据库
- c++ - 将 const char* 转换为 char 时出错
- php - 为什么 laravel 护照总是将 oauth_access_tokens 的 user_id 解析为整数?
- javascript - onmouseover 在选项中不起作用