如何从Mysql中的三个或四个表中检索交集

时间:2016-06-23 15:54:30

标签: mysql sql

我有包含公共列的表。

  • A:汽车,香蕉,猴子
  • B:香蕉,龙,蜗牛
  • C:鞋子,袜子,香蕉

如您所见,列 banana 是常用列。相同的名称,相同的数据类型,(int)。

我想在这些表格中进行一些搜索工作。

例如,

  1. 在表格中,我想找到包含关键字' Toyota'在列' car'。

  2. 在B表中,关键词“邪恶的蜗牛'在专栏'蜗牛'

  3. ...

  4. 喜欢这个。

    然后,我想通过两种方法检索香蕉字段的值:

    1. 从找到的所有表格的行
    2. 香蕉,可以在所有表​​格中找到的行中找到。
    3. 所以尽管我甚至无法勾勒出解决方案,但还是需要两个sql行......

      我一直认为解决这个问题差不多八个小时,但只会让头痛变得更加严重。

      我想知道有人可以帮忙解决这个问题......

1 个答案:

答案 0 :(得分:0)

找到所有包含关键词'丰田'在' car'做:

SELECT * FROM A WHERE car like '%Toyota%';

B和C相同。您应该注意,在我们检查列是否包含值的情况下使用类似的。要进行完全匹配,您应该使用等号来签名,例如汽车='丰田'

对于您的第二种查询类型,您希望得到的结果本质上是一种不同的结果。因此,您应查询每个表并将结果统一为:

SELECT a.banana FROM A a where a.banana=[VALUE] 
UNION
SELECT b.banana FROM B b where b.banana=[VALUE]
UNION
SELECT c.banana FROM C c where c.banana=[VALUE];