2015-08-01 4 views
0

Так вот что я пытаюсь сделать и понятия не имею, как действовать дальше.Сравнение и удаление строк на основе значений [MYSQLi]

Есть две таблицы. db1 и db2. Db1 содержит два column с, id и PriceMin.


Db2 содержит столбцы id и Price.


Db1 мать базы данных, в которой каждый id содержит установленную цену. Этот db является статическим.


Db2 является ребенок базой данных, в которой люди голосования для каждого элемента (читайте: id) и скрипт использует функцию avg() после согласования идентификаторов и цен, чтобы показать данные.


Теперь, поскольку это скрипт, который просит голоса, он имеет огромный недостаток: его можно манипулировать. Поэтому я пытаюсь запустить скрипт каждые пару часов, который проходит через db2, соответствует id и удаляет каждую строку (голосование) от db2, у которой есть идентификатор, и его цена составляет более 200% от того же id в db1.


Мои решения до сих пор:

  1. У каждого децибела быть запрошены и надуманные в массив и использовать str_replace через используя if функцию. Это не кажется логичным и выполнимым.

  2. Используйте сценарий до POST, чтобы проверить, что будет удвоить запросы к БД и не является логичным. Это также будет глупой идеей, поскольку для каждого голосования потребуется запрос.


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

Заранее благодарен!


EDIT:

Придумали что-то, но он не работает:

<?php 
include ('go.php'); 
$sql = "delete 
from db2 
where db2.id IN (select db1.id where db2.price > db1.price * 2)" or die(mysqli_error($sql)); 
?> 

ответ

0

Попробуйте этот запрос:

DELETE db2 
FROM db2 
JOIN db1 ON db2.id = db1.id 
WHERE db2.price > db1.price * 2 
+0

работал отлично. Огромное спасибо. –

Смежные вопросы