表A里面有A B 两个字段,其中A存放的是3个不同表的ID(3个表都有几个相同的字段),B就是用来区别此ID来自哪个表.结构如下
A B
1 1
1 2
1 3
我现在要用一条select语句取出id存在A中的3个表的信息(取3个表相同的字段)。假如用上面的数据我想的到数据
id Name Price KuCun
1 车 100000 10
1 电脑 5000 40
1 书 150 30
A B
1 1
1 2
1 3
我现在要用一条select语句取出id存在A中的3个表的信息(取3个表相同的字段)。假如用上面的数据我想的到数据
id Name Price KuCun
1 车 100000 10
1 电脑 5000 40
1 书 150 30
declare @sql varchar(8000)
set @sql = ''
select @sql = @sql + ' select * from '+ OBJECT_NAME(b) + 'union all '
from (select distinct b from tablea) aa
set @sql = substring(@sql ,1, len(@sql) - 10)
exec (@sql)
set @sql = ''
select @sql = @sql + ' select * from '+ OBJECT_NAME(b) + ' union all '
from (select distinct b from tablea) aa
set @sql = substring(@sql ,1, len(@sql) - 10)
exec (@sql)
set @sql = ''
select @sql = @sql + ' select * from '+ OBJECT_NAME(b) + ' union all '
from (select distinct b from tablea) aa
set @sql = substring(@sql ,1, len(@sql) - 10)
exec (@sql)
[/code]刚才那个少一个空格,更正一下
INSERT tb_1 SELECT 1,33.44,20
UNION ALL SELECT 2,33.22,30CREATE TABLE tb_2(id INT,Price SMALLMONEY,kucun INT)
INSERT tb_2 SELECT 1,3.44,20
UNION ALL SELECT 2,35.22,40CREATE TABLE tb_3(id INT,Price SMALLMONEY,kucun INT)
INSERT tb_3 SELECT 1,83.44,22
UNION ALL SELECT 2,31.2,10CREATE TABLE tb (A INT,B INT)
INSERT tb SELECT 1,1 UNION ALL SELECT 1,2 UNION ALL SELECT 1,3
GO
SELECT base.* FROM tb a
INNER JOIN
(SELECT *,tbid=1 FROM tb_1
UNION ALL
SELECT *,tbid=2 FROM tb_2
UNION ALL
SELECT *,tbid=3 FROM tb_3) base /*你能将表名以序号分别在tb表的b列,那么每一个序号肯定会对应到一个表名的*/
ON tbid=a.B AND base.id=a.A
/*
id price kucun tbid
1 33.4400 20 1
1 3.4400 20 2
1 83.4400 22 3
*/DROP TABLE tb_1,tb_2,tb_3,tb
GO
书,化妆品,茶
三种商品他们都有共同的属性就是,ID号,名称,价格,库存。而我的购物车表A里面只放入id和类别,但是我显示的时候想从3个表取出数据来显示
表A里面有A B 两个字段,其中A存放的是3个不同表的ID(3个表都有几个相同的字段),B就是用来区别此ID来自哪个表.结构如下
A B
1 1
1 2
1 3 书表----在A表的B字段中用1表示
BID 书名 批发价 库存
1 人与自然 50 100
化妆品表----在A表的B字段中用2表示
HID 化妆品名 批发价 库存
1 爽肤水 250 10茶表----在A表的B字段中用3表示
HID 茶名 批发价 库存
1 花茶 15 5我现在想用语句查出下面的数据
ID 商品名 批发价 库存
1 人与自然 50 100
1 爽肤水 250 10
1 花茶 15 5
1、类型表
ID,type_name,note
1 书 null
2 茶名 null
3 化妆品 null.....2、商品表
ID , name , type_id(关连类型表的ID), price , stock
1 人与自然 1 50 100
2 爽肤水 3 250 10
3 花茶 2 15 53、表A
orderid , merchandise_id
1 1
1 2
1 3
----result
select a.orderid,b.name , c.type,b.price,b.stock
from 表A a,类型表 c ,商品表 b
where a.merchandise_id = b.id and b.type_id = c.id