小编dav*_*vec的帖子

Postgres下一个/上一行SQL查询

我在Postgres 9.1数据库中有以下表结构,但如果可能,理想的解决方案应该是DB不可知的:

Table: users
|id|username|
|1 |one     |
|2 |two     |
|3 |three   |

Table: items
|id|userid|itemname|created  |
|1 |1     |a       |timestamp|
|2 |1     |b       |timestamp|
|3 |1     |c       |timestamp|
|4 |2     |d       |timestamp|
|5 |2     |e       |timestamp|
|6 |2     |f       |timestamp|
|7 |3     |g       |timestamp|
|8 |3     |h       |timestamp|
|9 |3     |i       |timestamp|

我有一个查询(视图),提供下一个和上一个item.id.

例如

View: UserItems
|id|userid|itemname|nextitemid|previtemid|created  |
|1 |1     |a       |2         |null      |timestamp|
|2 |1     |b       |3         |1         |timestamp|
|3 |1     |c       |4         |2         |timestamp|
|4 |2 …

sql postgresql ansi-sql

13
推荐指数
2
解决办法
2万
查看次数

Mysql 5.6.12 bug:在视图定义中使用别名命令时出错1356

我有一个非常简单的查询,工作正常:

SELECT *
FROM images i
INNER JOIN v_images_stats s
ON i.id = s.id
Run Code Online (Sandbox Code Playgroud)

SELECT *我结束了,所以我编辑的查询更具体,并忽略重复的列名,但MySQL的抛出一个#1356错误创建重复的列名:

SELECT i.is as id, s.id as imageid
FROM images i
INNER JOIN v_images_stats s
ON i.id = s.id
Run Code Online (Sandbox Code Playgroud)

#1356 - 查看'events.v_image_stats'引用无效的表或列(s)或函数或definer/invoker of view缺乏使用它们的权限

v_image_stats视图以及它所基于的底层视图和表具有正确的权限,我完全陷入困境.

我正在使用MySQL 5.6和phpmyadmin来创建和管理视图,我也在Phalcon框架内通过PHP PDO访问数据库,但我很确定这是一个MySQL问题,而不是其他任何问题.

任何帮助感激不尽.

我最初发布了SHOW CREATE VIEW的完整输出但是它太冗长了,这是我可以创建的最简单的例子来重新创建问题:

CREATE ALGORITHM=UNDEFINED DEFINER=`events`@`localhost` SQL SECURITY DEFINER VIEW `v_image_stats` AS
(
    select it.*, 1 AS `my_alias`
    from `v_image_totals` `it`
    order by `my_alias` asc)
)
Run Code Online (Sandbox Code Playgroud)

如果我在FROM子句中使用表而不是视图,它也会失败.

mysql

6
推荐指数
1
解决办法
1739
查看次数

标签 统计

ansi-sql ×1

mysql ×1

postgresql ×1

sql ×1