このシナリオには、members と team_members の 2 つのテーブルがあります。members テーブルは一目瞭然です。チーム メンバー テーブルには、メンバーがチームのメンバーである場合、メンバーのチーム情報が格納されます。ユーザーの member_id を持つ行がチーム メンバー テーブルにない場合、そのユーザーはチームに所属していません。私がやりたいことは、チームのメンバーではないすべてのユーザーを取得することです。左結合、内部結合、外部結合、または単に結合を使用する必要がありますか? このクエリはどのようになりますか?
CREATE TABLE IF NOT EXISTS `members` (
`member_id` int(15) NOT NULL AUTO_INCREMENT,
`group_id` int(15) NOT NULL,
`display_name` text NOT NULL,
`email_address` text NOT NULL,
`password` text NOT NULL,
`status` tinyint(1) NOT NULL,
`activation_code` varchar(16) NOT NULL,
`date_joined` text NOT NULL,
PRIMARY KEY (`member_id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
CREATE TABLE IF NOT EXISTS `team_members` (
`team_member_id` int(15) NOT NULL AUTO_INCREMENT,
`member_id` int(15) NOT NULL,
`team_id` int(15) NOT NULL,
`date_joined` text NOT NULL,
`date_left` text NOT NULL,
`total_xp` int(15) NOT NULL,
PRIMARY KEY (`team_member_id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;