日期:2014-05-18  浏览次数:20713 次

超困难的多表查询问题,请大侠帮忙啊.急~~~~~
我现在建了12表。1个月一个表。(用英文字母建的)
1个表里边有31个字段。每一个字段是一天。(day1,day2,day3,........)
存进去的内容是一个7位的数值加上一个颜色的值(99999999#ffffff)
我现在想给出一个值.在这些表中找出底于这个值的字段.

这个SQL语句应该怎么写~~~~

谢谢各位了.~~~

------解决方案--------------------
如果你要这样写~~可能会很累
create table mydemo
(
co1 varchar(10),
co2 varchar(10),
co3 varchar(10),
co4 varchar(10),
co5 varchar(10),
co6 varchar(10),
co7 varchar(10),
co8 varchar(10),
co9 varchar(10)
)
insert mydemo select '11#1 ', '12#2 ', '13#3 ', '15#4 ', '53#5 ', '56#6 ', '52#7 ', '18#8 ', '87#9 '
union all select '54#一 ', '10#二 ', '36#三 ', '22#四 ', '55#五 ', '20#六 ', '77#七 ', '28#八 ', '21#九 '

select * from(
select co1 from mydemo
union all
select co2 from mydemo
union all
select co3 from mydemo
union all
select co4 from mydemo
union all
select co5 from mydemo
union all
select co6 from mydemo
union all
select co7 from mydemo
union all
select co8 from mydemo
union all
select co9 from mydemo
)a
where substring(co1,1,2) <20
------解决方案--------------------
SELECT * FROM day1
UNION
SELECT * FROM day2
UNION
......
如果第一个表有三个字段的话,那么第二个表也必须要有三个字段,要不然不能合并