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

128

我有两张表,分别包含日期id字段。我想在这两个字段上进行联接。我已经尝试了

JOIN t2 ON CONCAT(t1.id, t1.date)=CONCAT(t2.id, t2.date)

这个方法可以用,但它非常慢。有更好的方法吗?

3个回答

220
JOIN t2 ON t1.id=t2.id AND t1.date=t2.date

47
JOIN t2 ON (t2.id = t1.id AND t2.date = t1.date)

33
SELECT * 
FROM t1
JOIN t2 USING (id, date)

如果您想要结果满足两个条件,也许您需要使用'INNER JOIN'或'WHERE t2.id is not null'


2
基本上,缓慢是因为具体计算新值没有索引,所以直接条件应该更快。 如果即使这个查询再次变慢,请检查索引是否存在,有时为2个字段创建一个索引也是有意义的。 - Eugene Kaurov

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接