【发布时间】:2012-08-05 07:24:45
【问题描述】:
嗨,我有两张这样的桌子:
表 1:
name | distro1 | distro2 | distro3
----------------------------------
foo | 001 | 002 | 003
表 2:
id | distro
---------------
001 | slackware
002 | redhat
003 | debian
我想得到这样的选择结果=
name | dis1 | dis2 | dis3
----------------------------------
foo | slackware | redhat | debian
创建这些源表所需的查询。
CREATE TABLE IF NOT EXISTS `table1` (
`name` varchar(30) NOT NULL,
`distro1` varchar(30) NOT NULL,
`distro2` varchar(30) NOT NULL,
`distro3` varchar(30) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
INSERT INTO `table1` (`name`, `distro1`, `distro2`, `distro3`) VALUES
('foo', '001', '002', '003');
CREATE TABLE IF NOT EXISTS `table2` (
`id` varchar(30) NOT NULL,
`distro` varchar(30) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
INSERT INTO `table2` (`id`, `distro`) VALUES
('001', 'slackware'),
('002', 'readhat'),
('003', 'debian');
【问题讨论】:
-
见规范化。如果有第四个发行版会发生什么
标签: mysql sql join correlated-subquery