首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Mysql获取记录常见记录以及不常见记录

Mysql获取记录常见记录以及不常见记录
EN

Stack Overflow用户
提问于 2015-10-29 20:12:59
回答 1查看 68关注 0票数 0

我有5个表(amazonebayopencartsearsjet),我想从所有表的第一优先级的共同记录,然后从任何两个YA3表的共同记录,然后不常见的记录。

我的表格和数据如下:

代码语言:javascript
复制
CREATE TABLE IF NOT EXISTS `amazon` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `a_upc` varchar(50) DEFAULT NULL,
  `a_sku` varchar(50) DEFAULT NULL,
  `a_title` varchar(50) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=3 ;

--
-- Dumping data for table `amazon`
--

INSERT INTO `amazon` (`id`, `a_upc`, `a_sku`, `a_title`) VALUES
(1, 'upc_a', 'sku1', 'title_a'),
(2, 'upc1', 'sku_a', 'title_a_1');

CREATE TABLE IF NOT EXISTS `jet` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `j_upc` varchar(50) DEFAULT NULL,
  `j_sku` varchar(50) DEFAULT NULL,
  `j_title` varchar(50) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=3 ;

--
-- Dumping data for table `jet`
--

INSERT INTO `jet` (`id`, `j_upc`, `j_sku`, `j_title`) VALUES
(1, 'upc1', 'sku_j', 'title_j'),
(2, 'upc_j', 'sku_j_1', 'title1');

CREATE TABLE IF NOT EXISTS `ebay` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `e_upc` varchar(50) DEFAULT NULL,
  `e_sku` varchar(50) DEFAULT NULL,
  `e_title` varchar(50) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=4 ;

--
-- Dumping data for table `ebay`
--

INSERT INTO `ebay` (`id`, `e_upc`, `e_sku`, `e_title`) VALUES
(1, 'upc_e', 'sku1', 'title_e'),
(2, 'upc1', 'sku_e', 'title_e_1'),
(3, 'upc_e_1', 'sku2', 'title1');


CREATE TABLE IF NOT EXISTS `opencart` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `o_upc` varchar(50) DEFAULT NULL,
  `o_sku` varchar(50) DEFAULT NULL,
  `o_title` varchar(50) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=3 ;

--
-- Dumping data for table `opencart`
--

INSERT INTO `opencart` (`id`, `o_upc`, `o_sku`, `o_title`) VALUES
(1, 'upc_a', 'sku1', 'title_o'),
(2, 'upc1', 'sku_o', 'title1');

CREATE TABLE IF NOT EXISTS `sears` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `s_upc` varchar(50) DEFAULT NULL,
  `s_sku` varchar(50) DEFAULT NULL,
  `s_title` varchar(50) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=3 ;

--
-- Dumping data for table `sears`
--
INSERT INTO `sears` (`id`, `s_upc`, `s_sku`, `s_title`) VALUES
(1, 'upc1', 'sku_s', 'title_s'),
(2, 'upc_s', 'sku_s_1', 'title_s_1');
EN

回答 1

Stack Overflow用户

发布于 2015-10-29 20:58:20

您的表结构不正确,但是如果您想要这样的东西,您可以这样做。

代码语言:javascript
复制
select *,count(id) as priority
 from
   (
    select id,c1,c2,c3 from table1 
    union all 
    select id,c1,c2,c3 from table2 
    union all select id,c1,c2,c3 from table3
    ) t1
    groupt by id,c1,c2,c3 order by priority desc

这不是最优化的方法..

您应该创建一个表,并放置一个类型或表列。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33413909

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档