我有两个表,table1和table2。我需要在col1.table2中搜索table1.col1的出现。我怎样才能做到这一点?
我做了以下声明,但我对mySQL没有经验。我不确定这是否是从两个不同的不相关表中查询的正确方法? col1和col2是字符串。
select table1.col1, table2.col1 from table1, table2 where
STRCMP(table1.col1, table2.col1)=0;
这是否符合我的目的?可以优化吗?
答案 0 :(得分:2)
“最佳方式”是加入两个表格。
SELECT a.*, b.*
FROM table1 a
INNER JOIN table2 b
ON a.col1 = b.col1
-- WHERE --other condition here
SubQuery方法(但我更喜欢加入表)
SELECT *
FROM table1
WHERE col1 IN
(
SELECT col1
FROM table2
-- WHERE -- condition here
)
答案 1 :(得分:0)
正如约翰所说,加入会更好:),但你总是可以在WHERE子句中放入另一个SELECT语句