日期:2014-05-16  浏览次数:20795 次

一个视图同步2个表内容主键重复怎么解决.有代码
刚刚接触mysql 不太懂,有劳各位指点.最好贴代码,我好理解.

我先创建视图表
SQL code
DROP TABLE IF EXISTS `www_home`;

CREATE TABLE `www_home` (
`tid` varchar(50) NOT NULL DEFAULT '' COMMENT '主题ID',
) ENGINE=MyISAM DEFAULT CHARSET=utf8 ROW_FORMAT=FIXED;

建立视图

SQL code
DROP TABLE `www_home`;
CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `www_home`
AS select
   `www_software`.`id` AS `tid`, (id 是主键)
from `www_software`;
UNION
AS select
   `www_game`.`id` AS `tid`, (id 是主键)
from `www_game`;


我想把 www_software和www_game的 id 内容 同步到 www_home tid 中. 但是2个表中的id内容都一样,不能建立视图.
有没有办法 让2个表中id 不管是否重复都写入到 www_home tid 中.


------解决方案--------------------
UNION->UNION ALL不行?
举例说明
------解决方案--------------------
CREATE VIEW `www_home`
AS 
select
`www_software`.`id` AS `tid`
from `www_software`
UNION ALL
select
`www_game`.`id` AS `tid`
from `www_game`;
------解决方案--------------------
用union all代替union

union all不去重
------解决方案--------------------
union all与union 的区别,union 是去除重复行的。
------解决方案--------------------
探讨

CREATE VIEW `www_home`
AS
select
`www_software`.`id` AS `tid`
from `www_software`
UNION ALL
select
`www_game`.`id` AS `tid`
from `www_game`;