首 页   · 站长博客 · 用户注册 · 会员登陆  · 会员排行  ·最新主题  ·最近回复  精华区  版权声明  ·论坛管理
  当前登录身份:游客,请先登录。  笔名: 口令: 验证码:   
楼 主  index »  MYSQL/SQL语句/PHPMYADMIN专栏 » [原创]php mysql高手请进,帮助解释下面语句的含义,月详细越好  


  作者:gaoheran
  注册时间:2005-01-15
  主题/回复:1/0
  积分:405
  等级:★★☆(五级)
  称号:略有小成

  gaoheran@eyou.co..
  未提供
  www.

 

 发表:2005-01-15 23:55:34 阅读 2379 次 回复 1 次 得分1  |   字号 字色
[原创]php mysql高手请进,帮助解释下面语句的含义,月详细越好
SELECT 
m.username as gy_user, 
m.password as gy_pw, 
m.styleid, m.newpm, 
u.*, u.specifiedusers LIKE '%\t$username\t%' AS specifieduser

FROM $table_members m LEFT JOIN $table_usergroups u 
ON u.specifiedusers LIKE '%\t$username\t%' 
OR (u.status=m.status
AND ((u.creditshigher='0' AND u.creditslower='0' AND u.specifiedusers='') OR (m.credit>=u.creditshigher AND m.credit<u.creditslower)))

WHERE username='$username' AND password='$password' ORDER BY specifieduser DESC
 
 1#楼  
 
  回复人:一起PHP
  注册时间:2004-02-27
  主题/回复:247/1521
  积分:4649
  等级:★★★★★☆(十一级)
  称号:论坛圣人

   
 1#楼 发表于2005-01-17 16:14:40  评分:1 

这么长的语句,看起来太费劲了。
而且因为不知道每一个字段的具体含义,只能解释这个语句时查询了哪个字段的值,而不知道查询出来的值是什么意义。

我觉得这个语句是这个意思::

1、首先,查询那些 username为 $username并且password为$password的那些记录,并且查询出来的最终结果根据specifiduser字段反序排序。
2、查询m表中的username,password,styleid,newpm四个字段的值。查询u表中的所有字段,并且u表中的specifiedusers字段与 $username做模糊匹配,这个字段在查询结果中用specifiduser表示。
3、以上的查询从$table_members,m,$table_usergroups ,u中作复合查询,并且前两个表和后两个表作左连接查询(left join),左连接时用到的查询字段为u表中的specifidusers字段或者 (括号中的查询条件)

总之,这个语句的作用是,从至少4个表当中按照查询条件,用左连接查询的方法查询处一系列有用的字段。

这么一说,感觉越说越乱。如果你对sql语句比较了解的话,可能能看懂个差不多,
如果几乎不太懂得话,估计是很难看懂。因为这个语句本身是比较复杂的。

有一点,任何复杂的语句,都可以用若干条简单的语句实现,达到相同的功能。
也就是说,不知道这个语句你从哪里弄到的。如果实在看不懂,可以自己用简单的语句实现同样的功能。
  页数1/1首页 « 1 » 末页
  发表回复:您还没有登陆,无法发表回复。请先[登陆]

一起PHP技术联盟 主办:一起PHP 联系方式:站长QQ:4304410 QQ群:8423742 20159565 站长博客 E-mail: nqp@nqp.me 执行时间:0.004sec
SimsmaBBS 2008 (v6.0) Developed by 17php.com,Copyright(C)2003-2010 All rights reserved. 副本授权:一起PHP官方专用版