我有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)已经看到根据seen_index,从main_index表之前的id 3和5。所以查询会返回user_id(1)还没有看到的来自main_index的行。 –