Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Интернет » Web-программирование » MySQL Помогите составить запрос

Модерирует : Cheery

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18

Открыть новую тему     Написать ответ в эту тему

Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Kaber
select ... where visitor_id <>44
Или внятнее задавайте вопрос

Всего записей: 15591 | Зарегистр. 20-09-2014 | Отправлено: 19:04 16-12-2021
Kaber



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Mavrikii

Цитата:
Или внятнее задавайте вопрос

Немного отредактировал вопрос. Суть в том, что надо получить все notification, у которых нет записей в `visitor_notification` по текущему visitor.id = 44
Вроде получилось:

Код:
 
SELECT * FROM `notification` WHERE `notification`.`id` NOT IN (SELECT `visitor_notification`.`notification_id` FROM `visitor_notification` LEFT JOIN `visitor` ON `visitor_notification`.`visitor_id` = 44 GROUP BY `visitor_notification`.`visitor_id`)
 

Всего записей: 1357 | Зарегистр. 14-03-2014 | Отправлено: 19:13 16-12-2021 | Исправлено: Kaber, 19:23 16-12-2021
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Kaber

Цитата:
LEFT JOIN `visitor` ON `visitor_notification`.`visitor_id` = 44 GROUP BY `visitor_notification`.`visitor_id`

зачем тут этот join? или у вас могут быть записи в таблице для несуществующего визитора?

Всего записей: 15591 | Зарегистр. 20-09-2014 | Отправлено: 21:11 16-12-2021
Kaber



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Mavrikii

Цитата:
зачем тут этот join? или у вас могут быть записи в таблице для несуществующего визитора?

Точно, спс!

Всего записей: 1357 | Зарегистр. 14-03-2014 | Отправлено: 23:18 16-12-2021
GEGEMON



BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
После обновления DLE? при попытке подключить б.д. получаю ошибку

так понимаю отсутствует таблица, но создать не умею. Помогите пжст

Всего записей: 2820 | Зарегистр. 07-02-2006 | Отправлено: 11:43 30-12-2021
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
GEGEMON
Для этого нужно знать структуру таблицы. Где же мы ее возьмем. Посмотрите установочную часть скрипта, где то там будет структура. И может она есть, просто сменилось название базы (то, что до точки)

Всего записей: 15591 | Зарегистр. 20-09-2014 | Отправлено: 11:53 30-12-2021
Kaber



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Привет, помогите пож. составить запрос, есть следующая БД:
product  
id: 1
 
product  
id: 2
 
-----------
 
category
id: 1
product_id: 1
is_adult: 0
 
category
id: 2
product_id: 1
is_adult: 0
 
category
id: 3
product_id: 1
is_adult: 1
 
Нужно получить все продукты у которых нет category.is_adult = 1, т.е. первый продукт не должен попасть в выборку, так есть связанная категория category.id = 3 с category.is_adult = 1
 
Получилось так:

Код:
 
SELECT * FROM product
WHERE NOT EXISTS (SELECT 1
                  FROM category
                  WHERE category.product_id = product.id AND category.is_adult = 1);
 

Всего записей: 1357 | Зарегистр. 14-03-2014 | Отправлено: 21:27 04-01-2022 | Исправлено: Kaber, 21:58 04-01-2022
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Kaber
select p.* from product p join category c on c.product_id = p.id and c.is_adult != 1
Если не будет категории тоже не выберет. Иначе left join
И можно группировать, чтобы не было дублей
 
select p.* from product p join category c on c.product_id = p.id and c.is_adult != 1 group by p.id

Всего записей: 15591 | Зарегистр. 20-09-2014 | Отправлено: 22:05 04-01-2022 | Исправлено: Mavrikii, 22:12 04-01-2022
Kaber



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Mavrikii
Так вроде не работает:
http://sqlfiddle.com/#!9/4648ba/1
 
Mavrikii
Спасибо! Надежда была только на Вас, но как часто бывает, пока писал вопрос - нашел ответ.

Всего записей: 1357 | Зарегистр. 14-03-2014 | Отправлено: 22:43 04-01-2022 | Исправлено: Kaber, 22:51 04-01-2022
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Kaber
Да, понял. Там же есть и с другими категориями.
Тогда да, с подзапросоом от противного.

Всего записей: 15591 | Зарегистр. 20-09-2014 | Отправлено: 22:49 04-01-2022
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Но лучше так

Код:
SELECT * FROM product
WHERE id NOT IN (
  SELECT DISTINCT(product_id) FROM category WHERE is_adult = 1
);

Всего записей: 15591 | Зарегистр. 20-09-2014 | Отправлено: 00:51 05-01-2022
qw12



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Есть таблица, в колонке (ip_octal) находятся IP адреса в 8-ричном формате, есть пустая колонка (ip_normal). Нужна заполнить эту пустую айпишниками в нормальном представлении. Что-то не понял, как это сделать.
 

Код:
SELECT INET_NTOA (ip_octal) FROM table_ip
UPDATE ip_normal SET ip_octal

 
Нет, неправильно.

Всего записей: 601 | Зарегистр. 04-06-2001 | Отправлено: 18:20 20-03-2022 | Исправлено: qw12, 18:21 20-03-2022
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
qw12
update tablename set ip_normal = INET_NTOA(ip_octal) 

Всего записей: 15591 | Зарегистр. 20-09-2014 | Отправлено: 18:48 20-03-2022
Открыть новую тему     Написать ответ в эту тему

Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18

Компьютерный форум Ru.Board » Интернет » Web-программирование » MySQL Помогите составить запрос


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru