Если я изменил group_id
на room_id
, теперь он работает нормально:
CREATE TABLE `group_users` (
`room_id` bigint(20) unsigned NOT NULL,
`user_id` bigint(20) unsigned NOT NULL,
PRIMARY KEY (`room_id`,`user_id`),
KEY `group_users_fk2` (`user_id`),
CONSTRAINT `group_users_fk1` FOREIGN KEY (`room_id`) REFERENCES `groups` (`room_id`),
CONSTRAINT `group_users_fk2` FOREIGN KEY (`user_id`) REFERENCES `users` (`user_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
INSERT INTO `users` (`user_id`, `username`, `language`, `SocketID`, `email`, `password`, `registered_on`, `confirmed_email`, `confirmed_on`) VALUES (NULL, 'pavel', 'english', NULL, NULL, NULL, CURRENT_TIMESTAMP, '0', NULL);
INSERT INTO `users` (`user_id`, `username`, `language`, `SocketID`, `email`, `password`, `registered_on`, `confirmed_email`, `confirmed_on`) VALUES (NULL, 'bob', 'english', NULL, NULL, NULL, CURRENT_TIMESTAMP, '0', NULL);
INSERT INTO `groups` (`room_id`, `room_name`) VALUES (NULL, 'room1');
INSERT INTO `groups` (`room_id`, `room_name`) VALUES (NULL, 'room2');
INSERT INTO `group_users` (`room_id`, `user_id`) VALUES ('1', '2');
INSERT INTO `group_users` (`room_id`, `user_id`) VALUES ('1', '1');
результат:
+---------+---------+
| room_id | user_id |
+---------+---------+
| 1 | 1 |
| 1 | 2 |
+---------+---------+