当前查询:
{{1}}
如何在具有相同字段的多个表上运行上述查询?例如table2,table3,table4
如果我要将所有表中的所有数据合并为1个单个表而不是多个表,查询会更快吗?或者它根本没有任何区别?
答案 0 :(得分:-1)
回答第一个问题:你可以在MySQL中使用JOINS
,就像你说的那样结合表格。
回答第二个问题:
单程:
SELECT
table1.this, table2.that, table2.somethingelse
FROM
table1, table2
WHERE
table1.foreignkey = table2.primarykey
AND (some other conditions)
第二种方式:
SELECT
table1.this, table2.that, table2.somethingelse
FROM
table1 INNER JOIN table2
ON table1.foreignkey = table2.primarykey
WHERE
(some other conditions)
WHERE
语法是面向关系模型的,其中INNER JOIN
是您应该使用的ANSI语法。
一旦您需要开始向查询中添加更多表,使用WHERE
的第一个查询就会变得更加混乱,难以阅读并且难以维护。想象一下,在四个或五个不同的表上进行相同的查询和联接类型......这是一场噩梦。
但是,根据查询优化器,它们可能与计算机具有相同的含义。
您应始终编码以便可读。
也就是说,如果这是内置关系,请使用显式连接。如果要匹配弱相关数据,请对从where
获得的结果集使用JOINS
子句。
希望这有帮助