【问题标题】:create mysql views with UNION operator on query在查询中使用 UNION 运算符创建 mysql 视图
【发布时间】:2013-04-03 20:44:04
【问题描述】:

我正在尝试创建带有 UNION 运算符的 sql 视图。我尝试先执行 sql,然后再将其嵌入到视图中,结果是成功的。但是当我尝试将它嵌入创建视图时,它返回了这个错误

“错误代码:1064 您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以获取在“UNION”附近使用的正确语法 SELECT p.product_media_id AS media_id, p.product_title AS title, p.product' 在第 8 行 "

我还保证所有列都具有相同的数据类型。

SQL 视图:

CREATE
/*[ALGORITHM = {UNDEFINED | MERGE | TEMPTABLE}]
[DEFINER = { user | CURRENT_USER }]
[SQL SECURITY { DEFINER | INVOKER }]*/
VIEW `mydbname`.`s_views` 
AS
(SELECT c.media_id AS media_id, 
    c.title AS title, 
    c.title_slug AS slug, 
    c.content_one      AS description, 
    c.type AS cat 
FROM content_content c 
WHERE c.type = 'news' 
    OR c.type='travel_genius' 
    AND c.media_id IS NOT NULL 
    AND c.status = 1
UNION
SELECT p.product_media_id AS media_id, 
    p.product_title AS title, 
    p.product_title_slug   AS slug, 
    p.product_description AS description, 
    'product' AS cat 
FROM p_views p
WHERE p.product_media_id IS NOT NULL);

【问题讨论】:

  • 为什么SELECT 语句周围有括号?
  • 我只是在创建视图时使用 sqlyog 的格式。我已经成功地创建了很多带有括号语法的视图
  • 您是否尝试删除括号以查看是否有效?

标签: mysql sql


【解决方案1】:

这是 MySQL 中的一个错误。触发它的是括号:-

http://bugs.mysql.com/bug.php?id=21614

【讨论】:

  • 2015 年,这个 bug 仍然存在。
猜你喜欢
  • 1970-01-01
  • 2019-12-05
  • 2014-10-23
  • 2014-06-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-09-29
相关资源
最近更新 更多