Bur*_*kan 4 mysql sql rows duplicates
想象一下我们有这样的 Tbl_Names 和 Tbl_General_Settings 表
表用户
id name surname
1 Ahmet ABC
2 Ali XYZ
3 Selim KLM
Run Code Online (Sandbox Code Playgroud)
Tbl_Global_Settings
id Setting1 Setting2 Setting3 Setting 4
1 on off yes no
Run Code Online (Sandbox Code Playgroud)
我需要一个 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
Run Code Online (Sandbox Code Playgroud)
我怎样才能做到这一点?谢谢..
在您的示例中,您尝试执行笛卡尔积。
此操作可以在 MySql(和其他 DBMS)中使用 CROSS JOIN 执行,如下所示:
SELECT *
FROM Tbl_User u
CROSS JOIN Tbl_Global_Settings gs
Run Code Online (Sandbox Code Playgroud)
CROSS JOIN(笛卡尔积)获取第一个表的每一行并创建与第二个表的每一行的链接。在您的示例中,结果有 3 行,因为 3(用户)x 1(全局设置)= 3。
如果您有 2 个全局设置,则结果将为 6。(3 x 2)