3

想象一下,我们有这样的 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

我怎样才能做到这一点?谢谢..

4

2 回答 2

5

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

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

SELECT *
FROM Tbl_User u
CROSS JOIN Tbl_Global_Settings gs

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

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

于 2013-09-08T21:52:00.653 回答
2

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

于 2013-12-24T21:58:46.983 回答