SQL为所有行选择和连接值

时间:2013-09-08 19:07:05

标签: mysql sql duplicates rows

想象一下,我们有像这样的Tbl_Names和Tbl_General_Settings表

Tbl_User

id   name    surname
1    Ahmet   ABC
2    Ali     XYZ
3    Selim   KLM

Tbl_Global_Settings

id   Setting1    Setting2    Setting3    Setting 4
1    on          off         yes         no

我需要一个SELECT查询,显示tbl_user中所有行的一行全局设置:

查询结果应如下所示:

id   name    surname   Setting1    Setting2    Setting3    Setting 4
1    Ahmet   ABC       on          off         yes         no
2    Ali     XYZ       on          off         yes         no
3    Selim   KLM       on          off         yes         no

我该怎么做?感谢..

2 个答案:

答案 0 :(得分:2)

在您的示例中,您尝试执行笛卡尔积。

此操作可以在带有CROSS JOIN的MySql(和其他DBMS)中执行,如下所示:

SELECT *
FROM Tbl_User u
CROSS JOIN Tbl_Global_Settings gs

CROSS JOIN(笛卡尔积)取第一个表的每一行,并与第二个表的每一行创建一个链接。在您的示例中,您有3行,因为3(用户)x 1(全局设置)= 3。

如果您有2个全局设置,则结果为6.(3 x 2)

答案 1 :(得分:2)

找到解决方案: SELECT * FROM Tbl_User,Tbl_Global_Settings