MySQL如何在两个字段上连接表

ped*_*ete 98 mysql join

我有两个表dateid字段表.我想加入这两个领域.我试过了

JOIN t2 ON CONCAT(t1.id, t1.date)=CONCAT(t2.id, t2.date)
Run Code Online (Sandbox Code Playgroud)

这是有效的,但它很慢.有一个更好的方法吗?

wom*_*ble 167

JOIN t2 ON t1.id=t2.id AND t1.date=t2.date
Run Code Online (Sandbox Code Playgroud)


Cha*_*rch 37

JOIN t2 ON (t2.id = t1.id AND t2.date = t1.date)
Run Code Online (Sandbox Code Playgroud)


Eug*_*rov 25

SELECT * 
FROM t1
JOIN t2 USING (id, date)
Run Code Online (Sandbox Code Playgroud)

也许你需要使用INNEER JOIN或t2.id不为null,如果你想要的结果只匹配两个条件

  • 基本上,缓慢是因为具体计算没有索引的新值,因此直接条件应该更快。如果这个查询再次变慢,检查索引是否存在,有时为 2 个字段创建一个索引也是有意义的。 (2认同)