У меня есть две таблицы в этом сценарии: члены и team_members. Таблица участников довольно понятна. Таблица членов команды хранит информацию о команде члена, если она является членом команды. Если в таблице членов группы нет строки, которая имеет member_id пользователя, то они не находятся в команде. То, что я хочу сделать, - это получить всех пользователей, которые не являются членами команды. Должен ли я использовать левое соединение, внутреннее соединение, внешнее соединение или просто присоединиться? Как выглядит этот запрос?Как выбрать записи MySQL на основе результатов из связанной таблицы?
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;
Это предполагает, что вы храните «» в дату осталось первоначально – skv
Второй запрос Предоставлена именно то, что мне нужно. Однако team_members.date_left! = '') На самом деле не должно быть! так как это получает членов, которые покинули команду. Но спасибо! – ShoeLace1291
@ ShoeLace1291, спасибо за комментарий, рад, что я мог бы помочь, я снова проверил запрос в скрипке, и хотя это выглядит немного запутанным, это принесло мне правильные результаты, спасибо за принятие – skv