0

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

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

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

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

4

2 回答 2

2

“最好的方法”是加入两个表。

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  
   )
于 2012-08-20T06:01:16.330 回答
0

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

于 2012-08-20T06:00:46.003 回答