У меня есть 2 таблицы, одна из которых содержит много строк данных, и то, которое содержит строки, которые пользователь использовал на сегодняшний день. Как использовать один запрос, который позволяет мне вытащить 3 элемента из основной таблицы, но только строки, которые данный пользователь не видел раньше.Как запросить несколько таблиц MySQL на основе определенного условия?
Пример таблицы:
CREATE TABLE `main_index` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(255) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
insert into `main_index` set `id`='1', `name`='something1';
insert into `main_index` set `id`='2', `name`='something2';
insert into `main_index` set `id`='3', `name`='something3';
insert into `main_index` set `id`='4', `name`='something4';
insert into `main_index` set `id`='5', `name`='something5';
CREATE TABLE `seen_index` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`user_id` int(12),
`row_id` int(12),
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
insert into `seen_index` set `user_id`='1', `row_id`='3';
insert into `seen_index` set `user_id`='1', `row_id`='5';
insert into `seen_index` set `user_id`='2', `row_id`='1';
insert into `seen_index` set `user_id`='2', `row_id`='3';
insert into `seen_index` set `user_id`='2', `row_id`='4';
Использование user_id '1' для этого, запрос должен возвращать: 1, 2, 4
Я не вижу, как 'user_id = 1' совпадает с ожидаемым исходом' 1, 2, 4' –
на основе 2-х таблиц, которые я дал, user_id (1) видел id 3 и 5 из таблицы main_index до, в соответствии с visible_index. Таким образом, запрос будет возвращать строки из main_index, которые user_id (1) еще не видел. –