我有一个不太理想的数据库结构,我不得不使用。表1包含2个ID(让我们称它们为id1,id2)。这些Id链接到另一个表Table2中的2行。我想获取Table1的一些列,并使用id1和id2从Table2中获取列。我真的必须两次连接到同一个表以连接到不同的行吗?还是有另一种更有效的方法来做到这一点?我的查询超过20秒20秒。复杂的MySQL查询永远执行
SELECT t1.id1, t1.id2, t2.name, t3.name
FROM Table1 t1, Table2 t2, Table2 t3
WHERE t1.id1 = t2.id AND t1.id2 = t3.id AND t1.index = 2
当你说“20行“是表的大小还是结果集的大小?如果是后者,桌子有多大?他们的结构是什么?此外,您需要学习ANSI标准连接语法,并使用条件的'on'子句。 'join'的where子句是如此过时。 –
我的代码如下所示:http://pastebin.com/1uZnRuJw它返回有效数据,但在这些表中大约1000行总共需要30秒以上。 –