SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 13.08.2018 19:02:23

NauMau
Участник
Зарегистрирован: 13.08.2018
Сообщений: 3

Выборка из одной таблицы, учитывая данные другой таблицы, в один запрос.

Добрый день уважаемые! Помогите пожалуйста новичку с составлением запроса, а то голову сломал, не могу понять как такие запросы делать ((

Для обучения поставил себе задачку, написать букс. Начал с автосерфинга.

Есть такие две таблички:

mysql> SELECT * FROM autosurfing;
+----+--------------------+------+------+--------------+--------------+---------------+-------+---------+------------+--------+
| id | url                | time | text | price        | balance      | ordered_views | views | user_id | date       | status |
+----+--------------------+------+------+--------------+--------------+---------------+-------+---------+------------+--------+
|  1 | http://jquery.com/ |    5 | TEXT | 0.0000002000 | 0.0000008000 |          1000 |    13 |       2 | 1509466193 |      2 |
|  2 | http://google.com/ |    5 | TEXT | 0.0000004000 | 0.0000092000 |           500 |     2 |       4 | 1509466199 |      2 |
|  3 | http://yandex.ru/  |   10 | TEXT | 0.0000000000 | 0.0000000000 |           300 |     1 |       2 | 1509466700 |      2 |
+----+--------------------+------+------+--------------+--------------+---------------+-------+---------+------------+--------+
3 rows in set (0,00 sec)

mysql> SELECT * FROM autosurfing_views;
+---------+---------+------------+
| site_id | user_id | date       |
+---------+---------+------------+
|       1 |       1 | 1534043215 |
|       5 |       8 | 1534878656 |
|      12 |       7 | 1534878656 |
|      11 |       1 | 1534878656 |
+---------+---------+------------+
4 rows in set (0,00 sec)

Первая, это собственно сайты для серфинга, а во второй хранится информация, какой пользователь какие сайты уже просматривал, что бы ему показывать только уникальные сайты.

И вот собственно уже сломал голову, как составить запрос (((

Нужно выбрать из таблицы autosurfing те url которые еще не просматривал пользователь с id = 1. (данные об этом в таблице autosurfing_views)

Помогите пожалуйста )

И еще правильно ли я реализовал таблички, и собственно связь или может это как-то по другому нужно было сделать?

Отредактированно NauMau (13.08.2018 19:05:47)

Неактивен

 

#2 13.08.2018 19:08:50

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5827

Re: Выборка из одной таблицы, учитывая данные другой таблицы, в один запрос.

select url from autosurfing where id not in (select site_id from autosurfing_views where user_id = 1)

Неактивен

 

#3 13.08.2018 19:17:07

NauMau
Участник
Зарегистрирован: 13.08.2018
Сообщений: 3

Re: Выборка из одной таблицы, учитывая данные другой таблицы, в один запрос.

vasya написал:

select url from autosurfing where id not in (select site_id from autosurfing_views where user_id = 1)

Огромное спасибо ) Я понимал что нужно сделать выборку в выборке, но не понимал как именно это реализуется ) А вот это not in для меня вообще новое )

Отредактированно NauMau (17.08.2018 13:25:03)

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson