КАК избежать полного отображения данных, которые находятся в другой таблице MySQL?

#mysql

#mysql

Вопрос:

Я пытаюсь избежать некоторых данных, которые уже есть в двух таблицах… что означает… Я использовал инструкцию select для получения объявления, которое хранится в базе данных MySQL с использованием идентификатора участника, и я использую таблицы СОЕДИНЕНИЙ… здесь нет никаких проблем… все рекламные объявления отлично отображаются, которые относятся к пакету участника…

Теперь проблема в том… что участник нажимает на рекламу… он хранится в таблице, которая называется «просмотр», с датой клика, идентификатором ad_id и идентификатором участника. И снова тот же участник не сможет нажать на это объявление до следующего дня… Мне нужно избегать показа этих рекламных данных с помощью операторов select с условием…

кто-нибудь может мне помочь, пожалуйста? Я вставляю свой запрос ниже

 SELECT `advertisements`.`Ads_ID`,`advertisements`.`AdsName`,`advertisements`.`code`,`advertisements`.`Ad_Value`,`advertisements`.`images`,`advertisements`.`date` FROM `advertisements` JOIN `package_ads` ON `package_ads`.`Ads_ID`=`advertisements`.`Ads_ID` JOIN `packages` ON `packages`.`Package_ID`=`package_ads`.`Package_ID` JOIN `member_package` ON `member_package`.`Package_ID`=`packages`.`Package_ID` JOIN `members2`ON `members2`.`Mem_ID`=`member_package`.`Mem_ID` JOIN `views`ON `views`.`Mem_ID`=`members2`.`Mem_ID` WHERE `member_package`.`Mem_ID`="M100" AND `views`.`clickeddate`!="2021-12-04" AND `views`.`Ads_ID`!=`advertisements`.`Ads_ID`  

Комментарии:

1. Ваш вопрос неясен .. обновите свой вопрос, добавьте надлежащий образец данных и ожидаемый результат в виде текстового текста

Ответ №1:

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

  1. Использование не существует или не в состоянии
  2. или используйте левое соединение и добавьте значение NULL для условия соединения.

Приведенный ниже запрос даст вам желаемый результат. Он удаляет из запроса выбора объявления, которые уже были посещены конкретным участником в определенную дату.

 SELECT  advertisements.Ads_ID, advertisements.AdsName, advertisements.code, advertisements.Ad_Value, advertisements.images, advertisements.date  FROM advertisements  JOIN package_ads ON package_ads.Ads_ID=advertisements.Ads_ID  JOIN packages ON packages.Package_ID=package_ads.Package_ID  JOIN member_package ON member_package.Package_ID=packages.Package_ID  JOIN members2 ON members2.Mem_ID=member_package.Mem_ID  LEFT JOIN views ON (views.Mem_ID=members2.Mem_ID and date(views.clickeddate) = current_date and views.Ads_ID=advertisements.Ads_ID) WHERE  member_package.Mem_ID="M100"  AND views.Ads_ID IS NULL