打个比方:
我有三张表:硬件,软件,其它。都在同一个数据库里。
每张表的结构都一样:产品的名称和价格。
1、现在我想用java实现数据库多表查询,查询某个产品的名称和价格。
2、查询出来的结果通过使用ResultSetMetaData.getTableName(int i)方法
获得某条结果所在的表名。 请高手指点一下,谢谢了。
我有三张表:硬件,软件,其它。都在同一个数据库里。
每张表的结构都一样:产品的名称和价格。
1、现在我想用java实现数据库多表查询,查询某个产品的名称和价格。
2、查询出来的结果通过使用ResultSetMetaData.getTableName(int i)方法
获得某条结果所在的表名。 请高手指点一下,谢谢了。
解决方案 »
- 关于osgi事件的一个奇怪现象!有大侠遇到吗?
- JCP的具体作用是什么呢,审核流程是什么样的呢?
- 一个排序问题,大家帮忙看看?
- 怎样替换一个文本文件中的部分内容?怎样在文本文件中查出一段文字的位置?
- 简单的问题!急用!谢谢!!从键盘输入的内容怎样与文件中的内容比较!?
- 再问关于静态变量的问题。。虾米,小鱼,大鱼都可进
- 子类实例化前父类会实例化?所以抽象类能被实例化?
- 怎样规范而且清晰的定义一个类?
- 100分求《Thinking in java》2nd edition 习题解答!收到马上给分!
- 配置出错
- 高分求助在线等:java的application程序可以获得本机的机器名么?
- 线程挂起唤醒问题,在线等待,急死了
SELECT * FROM 表1 WHERE 列1=值1
UNION
SELECT * FROM 表2 WHERE 列1=值1
...... 但这样查询出来的结果是作为一个临时表的,用getTableName()方法得不到所
在表的表名。
UNION
SELECT '表2' as tn,* FROM 表2 WHERE 列1=值1ado中可以直接这么写,用一个rs得到多个表,jdbc中不详
SELECT * FROM 表1 WHERE 列1=值1
SELECT * FROM 表2 WHERE 列1=值1
为生成的是一张临时表吧。
UNION
SELECT *,tablename '表2' FROM 表2 WHERE 列1=值1 这样根据rs里的tablename就知道是哪张表里的数据了。
我SQL不太懂,麻烦解释一下这句的作用。
(我在Oracle里测试的) ------------SELECT '表1' as tn,* FROM 表1 WHERE 列1=值1 意思是让你的查询结果里包含一个字段“tn”,而tn的值是"表1"
你实际运行一下就知道效果了。
然后ResultSetMetaData.getObject("tn"),或ResultSetMetaData.getString("tn")得到该值
然后可以直接用ResultSet.getString("sn");获得.是不是。再次谢谢大家了。