gpt4 book ai didi

mysql - 获取有关一个表中所有行的信息(当该行不在联接表中时)

转载 作者:行者123 更新时间:2023-11-29 14:01:38 24 4
gpt4 key购买 nike

如果表 userItems 中没有与 moduleItems 连接的记录只是 null,如何获取?

SELECT `users`.*, `useritems`.*, `moduleitems`.*, `modulesubitems`.* FROM `users`
LEFT JOIN `useritems` ON useritems.f_user_id = users.user_id
LEFT JOIN `moduleitems` ON moduleitems.moduleItem_id = useritems.f_moduleItem_id
LEFT JOIN `modulesubitems` ON modulesubitems.modulesubitem_id = useritems.userItem_value

编辑:我的数据库结构

CREATE TABLE IF NOT EXISTS `moduleitems` (
`moduleItem_id` int(11) NOT NULL AUTO_INCREMENT,
`f_module_id` int(11) NOT NULL,
PRIMARY KEY (`moduleItem_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=63 ;
<小时/>
CREATE TABLE IF NOT EXISTS `modules` (
`module_id` int(11) NOT NULL AUTO_INCREMENT,
PRIMARY KEY (`module_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=2 ;
<小时/>
CREATE TABLE IF NOT EXISTS `modulesubitems` (
`moduleSubitem_id` int(11) NOT NULL AUTO_INCREMENT,
`f_moduleItem_id` int(11) NOT NULL,
PRIMARY KEY (`moduleSubitem_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=19 ;
<小时/>
CREATE TABLE IF NOT EXISTS `useritems` (
`f_user_id` int(11) NOT NULL,
`f_moduleItem_id` int(11) NOT NULL,
`userItem_value` varchar(255) DEFAULT NULL,
PRIMARY KEY (`f_user_id`,`f_moduleItem_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
<小时/>
CREATE TABLE IF NOT EXISTS `users` (
`user_id` int(11) NOT NULL AUTO_INCREMENT,
PRIMARY KEY (`user_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=35 ;

最佳答案

如果您想查看每个用户的每个模块项目,无论他们在用户项目表中是否有匹配的记录,这应该可行:

SELECT  `users`.*, `useritems`.*, `moduleitems`.*, `modulesubitems`.* 

FROM `users`

CROSS JOIN `moduleitems`

LEFT JOIN `useritems`
ON useritems.f_user_id = users.user_id
AND moduleitems.moduleItem_id = useritems.f_moduleItem_id

LEFT JOIN `modulesubitems`
ON modulesubitems.modulesubitem_id = useritems.userItem_value

关于mysql - 获取有关一个表中所有行的信息(当该行不在联接表中时),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14981766/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com