-1

我在这里有这个查询

$rs = mysql_query("select Username.users,phone.users,user_id.coupon,points.coupon,time.coupon from users LEFT JOIN coupon on Username.users = coupon.user_id where coupon.user_id like '%$search%' or coupon.time like '%$search%' order by $sort $order limit $offset,$rows"); 

Where 

$sort = isset($_POST['sort']) ? strval($_POST['sort']) : 'time';   

我在这里做错了吗?我没有得到任何结果,请帮我解决这个问题。

谢谢..

4

3 回答 3

1

您正在选择columnname.tablename而不是tablename.columnname. 因此,而不是Username.users使用users.Username和所有相应的。

select users.Username  --<-- here 
      ,users.phone ,coupon.user_id. ,coupon.points ,coupon.time
  from users LEFT JOIN coupon 
    on users.Username = coupon.user_id  --<-- also here
 where ...

此外,您可以使用别名来减少查询长度和编写查询的时间,并且更简单,如下所示:

select u.Username  --<-- here 
      ,u.phone ,c.user_id. ,c.points ,c.time
  from users u LEFT JOIN coupon c
    on u.Username = c.user_id  --<-- also here
 where ...
于 2013-08-05T11:53:34.377 回答
0

尝试按以下方式编写查询,这可能会有所帮助:

$rs = mysql_query("select users.Username,users.phone,coupon.user_id,coupon.points,coupon.time from users LEFT JOIN coupon on users.Username = coupon.user_id 
where coupon.user_id like '%$search%' or coupon.time like '%$search%' order by $sort $order limit $offset,$rows");

只需验证这users.Username实际上是加入优惠券表的正确 ID。不应该users.user_id吗?在这种情况下,它将是

$rs = mysql_query("select users.Username,users.phone,coupon.user_id,coupon.points,coupon.time from users LEFT JOIN coupon on users.user_id = coupon.user_id 
where coupon.user_id like '%$search%' or coupon.time like '%$search%' order by $sort $order limit $offset,$rows");
于 2013-08-05T11:57:42.677 回答
0

更合适的方法,

因为时间是 Sql 中的一种类型

select users.`Username`, users.`phone`, coupon.`user_id`, coupon.`points`,coupon.`time` from users 
LEFT JOIN coupon 
on users.`Username` = coupon.`user_id` 
where coupon.`user_id` like '%$search%' or coupon.`time` like '%$search%'  
于 2013-08-05T11:58:19.960 回答