MySQL SELECT *来自2个表

时间:2014-01-09 13:54:07

标签: php mysql sql

我有一个非常愚蠢的问题。 让我们假设我有2个表,A有10行,B有100行。 我知道当我输入SELECT * FROM A, B时,结果将是1000行。

我的问题是,为什么?

有人可以向我解释一下吗?

3 个答案:

答案 0 :(得分:5)

因为这是一个cross join,它会在两个表之间为您提供cartesian product

维基百科:

  

CROSS JOIN返回表中行的笛卡尔积   加入。换句话说,它将产生组合每行的行   第一个表与第二个表中的每一行

所以在这种情况下,10 * 100 =(猜猜是什么)1000。

答案 1 :(得分:0)

如果你想在结果中看到110 resord,你应该使用UNION来合并两个表的结果:

(SELECT * from A)
UNION
(SELECT * from B)

答案 2 :(得分:0)

您必须将关系与某些WHERE集成,以编辑此输出