sql查询从多个表中选择数据

时间:2012-11-16 13:15:38

标签: mysql sql

我有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 个答案:

答案 0 :(得分:2)

  

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

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

答案 1 :(得分:0)

(SELECT * from in_order where `id` = '$id')
UNION
(SELECT * from pre_order where `id` = '$id')

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

答案 2 :(得分: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。用户无权执行select。 查看错误解决帖子:

  1. User cannot execute select error 1142
  2. ERROR 1142 (42000): ALTER command denied
  3. MySQL Error: #1142 - SELECT command denied to user

答案 3 :(得分:0)

也可能是由于使用了错误的数据库或模式名称引起的。