Sql 如何从一个表中选择所有内容,其中类似列的数据来自其他表?

Sql 如何从一个表中选择所有内容,其中类似列的数据来自其他表?,sql,sqlite,Sql,Sqlite,我已经做了类似的事情来一个接一个地获得结果,但现在我有一个300家公司的列表,我需要从中获取数据 SELECT * FROM vault WHERE defendant_client LIKE '%Purdue Pharma%'; 结果是列出了公司匹配的所有内容 但我想从vault中选择所有内容,在这些内容中,客户机(vault中的一列)匹配或类似于公司中位于不同表中的任何条目 SELECT * FROM vault WHERE defendant_client LIKE (SELECT

我已经做了类似的事情来一个接一个地获得结果,但现在我有一个300家公司的列表,我需要从中获取数据

SELECT * FROM vault
WHERE defendant_client LIKE '%Purdue Pharma%';
结果是列出了公司匹配的所有内容


但我想从vault中选择所有内容,在这些内容中,客户机(vault中的一列)匹配或类似于公司中位于不同表中的任何条目

SELECT * 
FROM vault
WHERE defendant_client LIKE (SELECT company FROM OpioidCompanies);
它的工作原理是运行,但没有返回结果,尽管我知道有几家匹配的公司,我应该能够返回一些结果


我做错了什么?如何获得所需的结果?

在您最近的编辑之后,您可能想尝试

SELECT
    vault.*
FROM
    vault
INNER JOIN
    OpioidCompanies
        ON vault.defendant_client LIKE '%' || OpioidCompanies.company || '%'

如果一个简单的<代码> %%<代码>不是你想要的,考虑研究<代码> SunOutExcel()/<代码>和相关函数。

在你最近的编辑之后,你可能想尝试…

SELECT
    vault.*
FROM
    vault
INNER JOIN
    OpioidCompanies
        ON vault.defendant_client LIKE '%' || OpioidCompanies.company || '%'

如果一个简单的<代码> %%<代码>不是你想要的,考虑研究<代码> SunOutExcel()/<代码>和相关函数。< /P> < P>我将使用相关的子查询:

来做这件事。
SELECT v.* 
FROM vault v
WHERE EXISTS (SELECT 1
              FROM OpioidCompanies oc
              WHERE v.defendant_client LIKE '%' || oc.company || '%'
             );
与使用
连接相比,这有两个优点:

  • 如果“保险库”匹配多个公司,则不存在重复项
  • 匹配在第一次匹配时停止,这可以提高性能

  • 我将使用相关子查询来实现这一点:

    SELECT v.* 
    FROM vault v
    WHERE EXISTS (SELECT 1
                  FROM OpioidCompanies oc
                  WHERE v.defendant_client LIKE '%' || oc.company || '%'
                 );
    
    与使用
    连接相比,这有两个优点:

  • 如果“保险库”匹配多个公司,则不存在重复项
  • 匹配在第一次匹配时停止,这可以提高性能


  • 首先,您的意思是像“%”+++“%”这样的
    ,还是更类似于
    SOUNDEX(client)=SOUNDEX(`或者可能是
    DIFFERENCE(client),第二,您希望发生什么,因为company表肯定有多行?您希望将每个客户机与每个公司进行比较吗?(例如,
    交叉连接
    )这是
    MySQL
    还是
    SQLite
    ?@MatBailie是第一个think@MatBailie首先,您的意思是像“%”+++“%”这样的
    ,还是更类似于
    SOUNDEX(client)=SOUNDEX(`或者可能是
    DIFFERENCE(client,)第二,当company表肯定有多行时,您希望发生什么?您希望将每个客户机与每个公司进行比较吗?(例如,
    交叉连接
    )这是
    MySQL
    还是
    SQLite
    ?@MatBailie是第一个think@MatBailieSQLiteUpdated for SqliteJoin是否将一个表与另一个表的列合并?如您的示例中所示?因为一个表有300个条目,而另一个表有100000个条目不要紧,您的答案让我了解了我需要的内容,只是稍微编辑了一下这是一个很长的对话,
    JOIN
    SQL
    中使用的一个基本操作,我建议您在线查找一个好的
    SQL
    课程,对不起。为sqlite更新JOIN是否将一个表的表与另一个表的列合并?如您的示例中所示?因为一个表有300个条目,而另一个表有100000个条目,所以您的答案让我找到了我需要的,只是编辑了一下。这是一个很长的对话,
    JOIN
    SQL
    中使用的一个基本操作,我建议在网上找一个好的
    SQL
    课程,对不起。