MySQL中两个表字段名相同导致的一个问题
2011-06-15 19:20
337 查看
今天在对两个表进行查询的时候,由于两个表的有已个字段名是相同的,最终导致了查询结果不是我要的,该问题导致我检查了很久啊。大致如下:
表A字段:
PID,PName,PNote
表B字段:
PID,Money,PayDate
查询语句如下:
SELECT PID,PName,(SELECT SUM(Money) FROM B WHERE PID=PID) TotalMoney ,PNote,(SELECT PayDate FROM B WHERE PID=PID ORDER BY PayDate DESC LIMIT 1) LastDate
FROM A
本来是想使用A表的值去在B表进行查询的,可最后返回的是所有的记录.最后发现是PID=PID的问题。最后我的解决方案是将PID赋值给另一个变量解决的。
如:
SELECT @PD:=PID P,PName,(SELECT SUM(Money) FROM B WHERE PID=@PD) TotalMoney ,PNote,(SELECT PayDate FROM B WHERE PID=@PD ORDER BY PayDate DESC LIMIT 1) LastDate
FROM A
不知道还有没有好方法了
表A字段:
PID,PName,PNote
表B字段:
PID,Money,PayDate
查询语句如下:
SELECT PID,PName,(SELECT SUM(Money) FROM B WHERE PID=PID) TotalMoney ,PNote,(SELECT PayDate FROM B WHERE PID=PID ORDER BY PayDate DESC LIMIT 1) LastDate
FROM A
本来是想使用A表的值去在B表进行查询的,可最后返回的是所有的记录.最后发现是PID=PID的问题。最后我的解决方案是将PID赋值给另一个变量解决的。
如:
SELECT @PD:=PID P,PName,(SELECT SUM(Money) FROM B WHERE PID=@PD) TotalMoney ,PNote,(SELECT PayDate FROM B WHERE PID=@PD ORDER BY PayDate DESC LIMIT 1) LastDate
FROM A
不知道还有没有好方法了
相关文章推荐
- java通过xstream将xml转换为java对象遇到的问题(一个对像中两个子类的类名相同)
- mysql添加DATETIME类型字段导致Invalid default value错误的问题
- sql语句——不同的表根据相同的字段值将两个表指定的字段合并为一个表
- 取两张mysql表中分别两个字段相同的值
- 两个表中多个字段相同,查询一个中有在另一个表中没有的数据
- 连接两个表相同字段为一个表(简单且实用)
- 把同一个Resource添加到同一个Group中两个不同Application导致的问题及解决方法
- 取两张mysql表中分别两个字段相同的值
- sql语句问题 通过联立两个表更新其中一个表的字段
- 同一个数据库里,两个相同字段但是顺序不同的数据表合并教程
- 取两张mysql表中分别两个字段相同的值
- mysql更新两个表 使用一个关联字段
- Hibernate使用原生SQL多表查询时字段名相同导致查询数据覆盖问题解决办法
- [用事实说明两个凡是]一个mysql莫名锁表的问题
- mysql通过sql语句如何批量去掉某一个表中某一个字段的下面的相同部分字符串
- mysql如何去除两个字段数据相同的记录?
- 导致coldfusion出错的MySQL DATETIME字段问题。
- mysql_合并两个表中相同字段
- 联表查询时,相同字段未取别名导致报错(mysql)
- thinkphp where 查询比较相同一个表中两个字段值