1

我有 3 张桌子。我想按日期从它们中选择数据。我将日期保存在所有表中的 unixtimestamp 中。我正在使用以下查询:

select
  c.up_date, c.user_id, c.id,
  f.id, f.up_date, f.friend1, f.friend2, f.status,
  s.postdate, s.status, s.id, s.display_name, s.userid, s.userid1
from 
  c.cover_pic,
  s.wp_userstatus,
  f.wp_friends
where
  s.userid=c.friend1
  and s.userid=c.user_id 
  and f.status=1
  and c.user_id=4
order by s.postdate

Tablel结构为:cover_pic表:

 id  user_id   coverpic                              color   up_date
 1   4         496b02165600889daf51c6b04b257ec0.jpg  63ACFF  1353069741

wp_friends表:

id  friend1  friend2  status  up_date
12  1    4    2       1353064093
11  4    1    1       1353064093

wp_userstatus表:

id  status   display_name  userid  userid1  postdate    
6   awesome  paramveer     4       4        1352414658
7   lets     paramveer     4       4        1352414932

它显示以下错误:

#1142 - SELECT command denied to user 'kdgadget'@'localhost' for table 'cover_pic'

我想按日期顺序显示数据。

4

4 回答 4

2

SELECT 命令拒绝用户 'kdgadget'@'localhost' 用于表 'cover_pic'

应该是一个明确的信息。用户 kdgadget 可能无法对表 cover_pic 执行 SELECT 命令。所以这是一个数据库配置问题,而不是查询问题。

于 2012-11-16T13:24:49.927 回答
0
(SELECT * from in_order where `id` = '$id')
UNION
(SELECT * from pre_order where `id` = '$id')

但每张桌子的长度、大小必须相同。

于 2012-11-16T13:19:41.293 回答
0

使用此查询,它使用连接和表的别名进行组织:

select c.up_date,c.user_id,c.id,f.id,f.up_date,f.friend1,f.friend2,f.status,
s.postdate, s.status,s.id,s.display_name.s.userid,s.userid1 
from cover_pic as c JOIN wp_userstatus as s,
ON s.userid=c.friend1 and s.userid=c.user_id and c.user_id=4 
JOIN  wp_friends as f ON f.status=1
order by s.postdate

您的错误不是来自 sql。用户无权执行选择。查看错误解决帖子:

  1. 用户无法执行选择错误 1142
  2. 错误 1142 (42000):ALTER 命令被拒绝
  3. MySQL 错误:#1142 - SELECT 命令拒绝用户
于 2012-11-16T13:23:40.710 回答
0

One of the possible cause may be by using the incorrect database or schema name.

于 2015-08-19T09:40:36.040 回答