免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 6678 | 回复: 10
打印 上一主题 下一主题

php操作mysql临时表问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-01-09 09:38 |只看该作者 |倒序浏览
我在php里建了一个临时表,把查询结果放入临时表,然后我查询临时表显示结果
但是过不了多久临时表就被没有了,好像是被mysql删除了。为什么会这样?

论坛徽章:
0
2 [报告]
发表于 2007-01-09 09:48 |只看该作者
临时表只在连接持续期间存在。

论坛徽章:
0
3 [报告]
发表于 2007-01-09 10:03 |只看该作者
那有没有什么参数设置让临时表一直存在呢,除非手工删除!!

论坛徽章:
0
4 [报告]
发表于 2007-01-09 10:08 |只看该作者
那干什么用临时表?

论坛徽章:
0
5 [报告]
发表于 2007-01-09 10:35 |只看该作者
其实我用临时表是想实现多表联合查询的排序。
我做一个供应商查询输入的程序。有多张表:主表(供应商基本资料),地址表(对应供应商的地址,可以多个也可以没有),项目表(对应供应商经营项目,可以多个也可以没有),联系人表(对应供应商经营项目,可以多个也可以没有),联系方式表(对应联系人,一对多)。。。。。。
我的查询结果显示供应商代码(外键),供应商名称,联系人和联系方式,经营项目。每个字段实现排序。
我是用联系查询select p.* from prov_Primary_tb AS p,porv_Address_tb AS a,prov_Contact_tb AS c,prov_ContactManner_tb AS cm where p.PrCo=a.PrCo and p.PrCo=c.PrCo and c.CoId=cm.CoId where.......order by ......来做的,每个字段都可以排序。
但是这样查询,没有地址或者没有联系人的供应商将不能显示出来。原因是where语句的限制。
如果是先得到主表的供应商代码,再用供应商代码去查询其他表,这样的话查许结果没有问题,但是不能排序。

所以我把查询结果放入临时表中,然后查询临时表,就可以排序了。

请指教!

论坛徽章:
0
6 [报告]
发表于 2007-01-09 10:37 |只看该作者
我问的是。你为什么要用 “临时”表,如果你希望这个表一直存在下去的话。

论坛徽章:
0
7 [报告]
发表于 2007-01-09 10:50 |只看该作者
你的意思是说就建立一个普通表啊,可以是可以。但是感觉这个表就是把查询结果临时放一下的
所以就想用临时表来做了

论坛徽章:
0
8 [报告]
发表于 2007-01-09 10:54 |只看该作者
临时表的一些特点:
1 连接持续时间内存在,连接断开后消失
2 只在本连接内存在,其它连接看不到
3 放在内存里,但是内存不够的时候也可能转移到磁盘上。

你想想,你需要的是那个特点,不是说,你的用途是临时,这个表就是临时表

论坛徽章:
0
9 [报告]
发表于 2007-01-09 11:07 |只看该作者
好,明白了,谢谢!
其实我这样做要的效果就是可以对每个显示字段排序。
如果不用临时表,只用查询语句该怎么做?

感觉用临时并不是很好

论坛徽章:
0
10 [报告]
发表于 2007-01-09 12:36 |只看该作者
"没有地址或者没有联系人的供应商将不能显示出来"
用left join可以解决你的问题
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP