【问题标题】:What is the best method to search for string from one table in another从另一个表的一个表中搜索字符串的最佳方法是什么
【发布时间】:2012-08-20 05:56:29
【问题描述】:

我有两张桌子,table1 和 table2。我需要在 col1.table2 中搜索 table1.col1 的出现。我怎样才能做到这一点?

我做了下面的语句,但是我对 mySQL 没有经验。我不确定这是否是从两个不同的不相关表中查询的正确方法? col1 和 col2 是字符串。

select table1.col1, table2.col1 from table1, table2 where 
STRCMP(table1.col1, table2.col1)=0;

这是否符合我的目的?可以优化吗?

【问题讨论】:

    标签: mysql


    【解决方案1】:

    “最好的方法”是连接两个表。

    SELECT  a.*, b.*
    FROM    table1 a 
                INNER JOIN table2 b
                    ON a.col1 = b.col1
    -- WHERE   --other condition here
    

    子查询方法(但我更喜欢加入表格

    SELECT  *
    FROM    table1
    WHERE   col1 IN
       (
         SELECT col1 
         FROM   table2
         -- WHERE -- condition here  
       )
    

    【讨论】:

    • 另一种方法是使用子查询,虽然它比连接慢。我会更新我的答案。
    • @John Woo:你所说的 WHER--condition 是什么意思?我想要做的是在 table2.col1 中搜索 table1.col1 的出现。我需要任何条件吗?还是 IN 足以达到目的?
    • 我的意思是如果你有任何“额外的”过滤条件:) 但如果没有,你可以省略它。
    【解决方案2】:

    正如约翰所说,加入会更好:),但你总是可以在 WHERE 子句中添加另一个 SELECT 语句

    【讨论】:

      猜你喜欢
      • 2015-01-11
      • 1970-01-01
      • 1970-01-01
      • 2020-03-27
      • 2021-01-15
      • 1970-01-01
      • 2020-12-05
      • 2021-03-19
      • 2012-11-07
      相关资源
      最近更新 更多