Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Выборка значений, которых нет в другой таблице + доп. условие / 3 сообщений из 3, страница 1 из 1
31.10.2018, 14:43
    #39725856
Victor256
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выборка значений, которых нет в другой таблице + доп. условие
Приветствую. Есть 2 таблицы, в одной контент, в другой действие юзера: лайк (1)/дизлайк (-1).

Дампы:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
DROP TABLE IF EXISTS `items`;
CREATE TABLE `items` (
  `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
  `content` varchar(200) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

INSERT INTO `items` (`id`, `content`) VALUES
(50,	''),
(51,	''),
(52,	''),
(53,	''),
(54,	''),
(55,	''),
(56,	''),
(57,	''),
(58,	''),
(59,	''),
(60,	''),
(61,	''),
(62,	''),
(63,	'');

DROP TABLE IF EXISTS `reactions`;
CREATE TABLE `reactions` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT,
  `users_id` int(10) unsigned NOT NULL,
  `items_id` bigint(20) unsigned NOT NULL,
  `reaction` tinyint(4) NOT NULL,
  PRIMARY KEY (`id`),
  KEY `users_id` (`users_id`),
  KEY `items_id` (`items_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

INSERT INTO `reactions` (`id`, `users_id`, `items_id`, `reaction`) VALUES
(2,	1,	61,	1),
(3,	2,	62,	1),
(4,	2,	55,	-1),
(5,	1,	60,	1),
(6,	1,	59,	-1),
(7,	1,	58,	-1),
(8,	1,	57,	1),
(9,	1,	56,	1),
(10,	1,	55,	-1);


Нужно что бы в выборку попали только те записи, на которые нет реакции пользователя с заданным users_id (например 1). Подскажите, каким запросом такое сделать?
...
Рейтинг: 0 / 0
31.10.2018, 14:59
    #39725865
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выборка значений, которых нет в другой таблице + доп. условие
Код: sql
1.
2.
3.
4.
5.
SELECT i.*
FROM items i
LEFT JOIN reactions r
    ON i.id = r.items_id AND r.users_id = @id
WHERE r.items_id IS NULL
...
Рейтинг: 0 / 0
31.10.2018, 16:12
    #39725963
Victor256
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выборка значений, которых нет в другой таблице + доп. условие
Akina,
да, точно... Спасибо, заработался )
...
Рейтинг: 0 / 0
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Выборка значений, которых нет в другой таблице + доп. условие / 3 сообщений из 3, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]