我有两张桌子:
表1
id | title | author | url
1 | the-test | james-brown | www.thetest.com
2 | the-house | clancy-brown | www.thehouse.com
3 | the-desk | leanne-brown | www.thedesk.com
4 | the-head | julie-brown | www.thehead.com
表2
id | title | author | url**
1 | the-mouse | john-blue | www.themouse.com
2 | the-house | clancy-brown | www.thehouse.com
3 | the-cups | carrie-blue | www.thecups.com
4 | the-head | clancy-brown | www.thehead.com
我需要仅显示 title
和author
匹配的结果,即
2 | the-house | clancy-brown | www.thehouse.com
我试过这个:
select *
from table1
inner join table2 on (table1.title=table2.title) AND (table1.author=table2.author)
但它只是永远运行(实际表中实际上有几十万行)。
请注意,这很好用:
select *
from table1
inner join table2 on (table1.title=table2.title)
我无法让它与两张桌子相匹配。有更聪明的方法吗?
提前感谢您的所有帮助。
答案 0 :(得分:1)
我认为你的SQL很好,你只需要在作者上索引table1和table2。添加这些索引,JOIN将足够快。您还有一个问题,即在示例数据中调用列author
,在第一个查询中调用name
。