SELECT gq_sendxx.FromMid,gq_sendxx.ToMid,gq_sendxx.Content,gq_sendxx.DateTime,gq_member.Picture_small,gq_member.NickName,gq_member.Id FROM(SELECT * FROM gq_sendxx ORDER BY DateTime DESC)AS s JOIN gq_member ON gq_sendxx.FromMid = gq_member.Id and gq_sendxx.FromMid <> '157' or gq_sendxx.ToMid = gq_member.Id and gq_sendxx.ToMid <> '157' WHERE gq_sendxx.`FromMid`='157' and gq_sendxx.`Fromhide` = '0' or gq_sendxx.`ToMid`='157' and gq_sendxx.`Tohide` = '0' GROUP BY gq_sendxx.ToMid,gq_sendxx.FromMid ORDER BY gq_sendxx.`DateTime` desc上边语句哪里错了?要是不加 FROM(SELECT * FROM gq_sendxx ORDER BY DateTime DESC)AS s 就可以查找出来 求解
解决方案 »
- dede发送邮件,邮件内容是动态页面,可以做到吗?
- php上传图片并浏览
- 求网址过滤正则
- 求一数据库设计
- 怎么用 php 开发blog后生成 rss 文件?
- Windows下PHP连接异地ORACLE TNS解析问题
- 新手问题:如何获得网页的参数??类似于index.php?path=p1这样的~~~
- 文件读取后得不到意想的结果,请帮忙看看
- 请问在php中如何删除一个目录下的所有文件?就是清空一个目录?
- 如题在adodb.php中有没有一个方法可以返回 update语句,影响的行数
- php 写了个csv出力 但是csv文件的第一行为啥是空行
- JS里面嵌入php代码,JS语法错误了,请大家帮我看看
SELECT gq_sendxx.FromMid,gq_sendxx.ToMid,
gq_sendxx.Content,gq_sendxx.DateTime,
gq_member.Picture_small,gq_member.NickName,gq_member.Id
(SELECT * FROM gq_sendxx ORDER BY DATETIME DESC)AS s
FROM gq_sendxx
JOIN gq_member ON gq_sendxx.FromMid = gq_member.Id
AND gq_sendxx.FromMid <> '157'
OR gq_sendxx.ToMid = gq_member.Id
AND gq_sendxx.ToMid <> '157'
WHERE gq_sendxx.`FromMid`='157'
AND gq_sendxx.`Fromhide` = '0'
OR gq_sendxx.`ToMid`='157'
AND gq_sendxx.`Tohide` = '0'
GROUP BY gq_sendxx.ToMid,gq_sendxx.FromMid
ORDER BY gq_sendxx.`DateTime` desc
SELECT
s.FromMid,
s.ToMid,
s.Content,
s.DateTime,
gq_member.Picture_small,
gq_member.NickName,
gq_member.Id
FROM(
SELECT * FROM gq_sendxx ORDER BY DateTime DESC
)AS s
JOIN gq_member
ON s.FromMid = gq_member.Id and ( s.FromMid <> '157' or s.ToMid = gq_member.Id ) and s.ToMid <> '157'
WHERE s.FromMid = '157'
and ( s.Fromhide = '0' or s.ToMid ='157' )
and s.`Tohide` = '0'
GROUP BY s.ToMid, s.FromMid ORDER BY s.DateTime desc;
应该注意的几个问题:
1. 尽量避免使用保留字作为字段名.
2. 当为表定义别名后,使用别名作为前缀.
3. 当多表连接时尽量明确连接类型,如inner/left/right/out.
4. on后面的条件尽量简单,把逻辑判断尽量放到where之后.