基于单个字段的MySQL交集

用户名

我正在使用php和mysql。我有2张桌子:

CREATE TABLE IF NOT EXISTS `mytable` (
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
`emails` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
`phones` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
`history` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
`insert_date` date DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB  DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=259 ;

INSERT INTO `mytable` (`id`, `emails`, `phones`, `history`, `insert_date`)
VALUES
(118, 'PLEASE SET',  '[email protected]', 'None','2015-01-13'),
(237, 'PLEASE SET', '[email protected]', 'gomez', '2015-01-11');

 CREATE TABLE IF NOT EXISTS `mytable2` (
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
`history` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB  DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=259 ;

INSERT INTO `mytable2` (`id`, `history`)
VALUES
(1, 'bob',),
(2 , 'gomez');

选择之后:

SELECT *
FROM `mytable1`
WHERE `insert_date` >= DATE_SUB(CURDATE(), INTERVAL 3 DAY)

我想在mytable2中找到具有与上述查询选择的历史记录字段匹配的历史记录字段的记录子集。这基本上是一个基于历史字段的交集。我不确定如何在mysql中编写代码,尤其是因为不存在“ intersect”。

辣椒坚果

您可以使用一个简单的JOIN来完成这项工作:

SELECT 
  m1.* 
FROM
  mytable m1 
  INNER JOIN mytable2 m2 
    ON m1.history = m2.history 

返回:

id  emails      phones          history insert_date
237 PLEASE SET  [email protected]  gomez   2015-01-11

您的问题中的查询如下所示:

SELECT 
  m1.* 
FROM
  mytable m1 
  INNER JOIN mytable2 m2 
    ON m1.history = m2.history 
WHERE `insert_date` >= DATE_SUB(CURDATE(), INTERVAL 3 DAY)

而且,由于唯一符合条件的记录的日期早于3天,因此它不会正确返回任何内容。

这是一个非常有用的信息图,将集合操作与SQL函数相关联

http://www.codeproject.com/KB/database/Visual_SQL_Joins/Visual_SQL_JOINS_orig.jpg

在此处输入图片说明

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

基于单个字段的MySQL交集

来自分类Dev

基于单个字段合并Excel行

来自分类Dev

将数字插入单个字段MySQL

来自分类Dev

Mongo在一个二维数组的单个字段上设置交集

来自分类Dev

在单个查询中基于多个字段进行分组

来自分类Dev

单个字段的数组

来自分类Dev

如何在mysql的单个字段中插入多个值

来自分类Dev

通过单个字段合并数据集(mysql)

来自分类Dev

使用PHP从MySQL选择并回显单个字段

来自分类Dev

选择两列中的单个字段(Mysql)

来自分类Dev

使用单个查询的MySQL多对多交集

来自分类Dev

在awk的单个字段中基于非数值条件删除重复的行

来自分类Dev

基于数组中的值的MongoDB查询并返回单个字段

来自分类Dev

单个字段上的RequiredFieldValidator

来自分类Dev

从多个JSON字段创建单个字段

来自分类Dev

MySQL选择基于其他字段计算2个字段

来自分类Dev

在不查询源两次或不使用CTE的情况下,基于单个字段汇总整个行?

来自分类Dev

MySQL将逗号分隔的字段与单个字符串进行比较

来自分类Dev

如果使用MYSQL,则在单个字段中是否需要使用唯一键?

来自分类Dev

如何在单个字段或列中连接多个值?(MySQL)

来自分类Dev

在单个查询中更新MySQL数据库上的多个字段

来自分类Dev

如何使用codeigniter活动记录在mysql表的单个字段中搜索多个值?

来自分类Dev

如何显示导致MySQL中计算出的总数的所有单个字段?

来自分类Dev

在Mysql数据库的单个字段中存储数组的替代方法

来自分类Dev

PHP&MySQL Web应用程序-选择单个字段(vs)从表中选择*

来自分类Dev

PHP mySQL查询以2元素数组形式返回单个字段

来自分类Dev

基于行总和与另一个字段值比较的mySQL选择

来自分类Dev

mysql查询结果作为基于不同表的2个字段的矩阵表

来自分类Dev

在基于MySQL中另一个字段的子查询中使用LIMIT

Related 相关文章

  1. 1

    基于单个字段的MySQL交集

  2. 2

    基于单个字段合并Excel行

  3. 3

    将数字插入单个字段MySQL

  4. 4

    Mongo在一个二维数组的单个字段上设置交集

  5. 5

    在单个查询中基于多个字段进行分组

  6. 6

    单个字段的数组

  7. 7

    如何在mysql的单个字段中插入多个值

  8. 8

    通过单个字段合并数据集(mysql)

  9. 9

    使用PHP从MySQL选择并回显单个字段

  10. 10

    选择两列中的单个字段(Mysql)

  11. 11

    使用单个查询的MySQL多对多交集

  12. 12

    在awk的单个字段中基于非数值条件删除重复的行

  13. 13

    基于数组中的值的MongoDB查询并返回单个字段

  14. 14

    单个字段上的RequiredFieldValidator

  15. 15

    从多个JSON字段创建单个字段

  16. 16

    MySQL选择基于其他字段计算2个字段

  17. 17

    在不查询源两次或不使用CTE的情况下,基于单个字段汇总整个行?

  18. 18

    MySQL将逗号分隔的字段与单个字符串进行比较

  19. 19

    如果使用MYSQL,则在单个字段中是否需要使用唯一键?

  20. 20

    如何在单个字段或列中连接多个值?(MySQL)

  21. 21

    在单个查询中更新MySQL数据库上的多个字段

  22. 22

    如何使用codeigniter活动记录在mysql表的单个字段中搜索多个值?

  23. 23

    如何显示导致MySQL中计算出的总数的所有单个字段?

  24. 24

    在Mysql数据库的单个字段中存储数组的替代方法

  25. 25

    PHP&MySQL Web应用程序-选择单个字段(vs)从表中选择*

  26. 26

    PHP mySQL查询以2元素数组形式返回单个字段

  27. 27

    基于行总和与另一个字段值比较的mySQL选择

  28. 28

    mysql查询结果作为基于不同表的2个字段的矩阵表

  29. 29

    在基于MySQL中另一个字段的子查询中使用LIMIT

热门标签

归档