这个SQL查询有什么作用? SELECT column_1 FROM table_1,table_2;

时间:2017-08-04 08:20:35

标签: mysql sql database postgresql

php artisan route:list

当我在我的数据库上运行它时,它返回了大量具有重复column_1值的行。我不明白为什么我得到这些结果。请解释这个查询的作用。

4 个答案:

答案 0 :(得分:4)

它从表1和表2中提供了cross product

答案 1 :(得分:2)

在更多外行人的术语中,这意味着对于表A中的每条记录,您将获得表B中的所有记录(所有可能的组合)。

具有3条记录的TableA和具有3条记录的表B在结果中给出了9条记录:

TableA-1/B-1
TableA-1/B-2
TableA-1/B-3
TableA-2/B-1
TableA-2/B-2
TableA-2/B-3
TableA-3/B-1
TableA-3/B-2
TableA-3/B-3

通常用作笛卡尔查询的基础(它们本身就是根据重复计划生成未来日期列表的方法:给出我未来6个月的所有可能结果,然后将该集合限制为那些其因素与我的星期几相匹配)

答案 2 :(得分:0)

这是有效的'交叉连接两个表的方式;虽然这不是首选的方式。 Cross Join会更加清晰。 on条件将有助于限制结果,

答案 3 :(得分:0)

想象一下,我有三个名叫Jhon,Ana,Nick的朋友;然后我在另一张桌子2中有红色和黄色的T恤,我想知道女巫来自。

所以在查询中是tableA:Friends和tableB:Tshirts返回:

1|JHON | t-shirt_YELLOW
2|JHON | t-shirt_RED
3|ANA  | t-shirt_YELLOW
4|ANA  | t-shirt_RED
5|NICK | t-shirt_YELLOW
6|NICK | t-shirt_RED

如您所见,此联接在朋友和T恤之间没有关系逻辑,因此通过评估所有可能的组合会生成您称为重复的内容。