MySQL如何查找几张表中的共同数据

标签 mysql mysql-5.7

我有三个 MySQL 表:

table1
list
a
b
c
d
e

table2
list
d
c
b
f
e

table3
list
f
e
c
b
a

我想要得到的是

list
b
c
e

因为 b、c、e 在这三个表的所有列表中都很常见。 我希望不要嵌套太多,因为实际上可能超过三个表。

最佳答案

试试这个:

CREATE TABLE IF NOT EXISTS `table1` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `list` varchar(25),
  PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=0 DEFAULT CHARSET=utf8;

CREATE TABLE IF NOT EXISTS `table2` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `list` varchar(25),
  PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=0 DEFAULT CHARSET=utf8;

CREATE TABLE IF NOT EXISTS `table3` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `list` varchar(25),
  PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=0 DEFAULT CHARSET=utf8;

INSERT INTO `table1` (`list`) VALUES ('a');
INSERT INTO `table1` (`list`) VALUES ('b');
INSERT INTO `table1` (`list`) VALUES ('c');
INSERT INTO `table1` (`list`) VALUES ('d');
INSERT INTO `table1` (`list`) VALUES ('e');



INSERT INTO `table2` (`list`) VALUES ('d');
INSERT INTO `table2` (`list`) VALUES ('c');
INSERT INTO `table2` (`list`) VALUES ('b');
INSERT INTO `table2` (`list`) VALUES ('f');
INSERT INTO `table2` (`list`) VALUES ('e');


INSERT INTO `table3` (`list`) VALUES ('f');
INSERT INTO `table3` (`list`) VALUES ('e');
INSERT INTO `table3` (`list`) VALUES ('c');
INSERT INTO `table3` (`list`) VALUES ('b');
INSERT INTO `table3` (`list`) VALUES ('a');

查询:

Select t1.list
From table1 as t1
INNER JOIN table2 as t2
ON t1.list = t2.list
INNER JOIN table3 as t3
on t2.list = t3.list

您还可以访问sqlfiddle供查询。

关于MySQL如何查找几张表中的共同数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47966830/

相关文章:

PHP Mysqli SELECT from Views 不起作用

mysql - ERROR 1055 (42000) : Expression #1 of SELECT list is not in GROUP BY clause . ..这与 sql_mode=only_full_group_by 不兼容

MySQL - 选择或提取 JSON 对象数据作为列和值

mysql - 从搜索记录中获取搜索次数最多的术语,忽略任何用户在给定时间范围(小时)内对搜索术语的任何重复条目

php - 更新查询返回1,但无法在php中使用MSSQL更新数据库

php - CakePHP 没有在查找查询中加入正确的表

mysql - 如何从查询中省略一些结果但不是全部

php - 使用 MySQL 计算连续天数

mysql - 寻找MySQL表结构推荐

python - 在 python 中运行 mySql 命令