匹配具有相同字段的多个表的mysql查询

时间:2015-11-04 05:46:07

标签: php mysql

当前查询:

{{1}}

如何在具有相同字段的多个表上运行上述查询?例如table2,table3,table4

如果我要将所有表中的所有数据合并为1个单个表而不是多个表,查询会更快吗?或者它根本没有任何区别?

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子句。

希望这有帮助