Всем привет. Кто самый опытный,помогите решить задачу:
Есть две таблицы,например
user и foto
Как мне очистить таблицу foto ид которых не существует в таблице user?
В ручную не предлагать,их более милиона,неосилю...
Например хотел по ид очистить,не получается,чистится всё насвете в табле foto,даже те,которые существуют в табле user.
Если не понятно,объясню так:
В табле user например есть юзеры id 1,5,7,8 и 9
В табле foto есть юзеры id_user 1,2,3,4,5,6,7,8,9
Как мне подчистить таблу foto чтоб осталось только ид юзер с 1,5,7,8 и 9?
Надо чтобы ид одной таблицы ровнялись всем ид другой таблицы,а лишние не существующие ид во второй таблице удалять. Есть знающие?
Да в ручную нереально,так как каждый день ещё и прибавление. Это мне сидеть,не вставая из-за компа,и удалять лишнее,пока либо свет не вырубят,либо конец света не наступит,так как не которые юзеры прибавляются,удаляются,а мусор от них остаётся,и базу нагружает этот мусор до предела.
<?php
$sql = mysql_query(\"SELECT `id` FROM `user`\"
while ($row = mysql_fetch_assoc($sql)) {
$array_path[$array[\'id\']] = $row[\'id\'];
}
unset($sql, $row);
$delete = 0;
foreach ($array_path as $key) {
mysql_query(\"DELETE FROM `foto` WHERE `id_user`=\'\".$key.\"\'\"
$delete ++;
}
?>
--------
сразу на деле не пременяй, протестируй гденить, а то вдруг снесет всё
$user = mysql_qwery(mysql_result(\"SELECT * (COUNT) FROM `user`\",0);
mysql_qwery(\"DELETE FROM `foto` WHERE `id`!=\'\".$user.\"\'\"
Добавлено 01.12.13 в 10:47:54:
Могут быть ошибки,давно не писал и с тела царапаю
MrAK, как я ни догадался щас поправлю твоё дельце
Добавлено 01.12.13 в 10:55:17:
<?php
$user = mysql_num_rows(mysql_query (\"SELECT * FROM `user`\",0);
mysql_query(\"DELETE FROM `foto` WHERE `id_user`!=\'\".$user.\"\'\";
?>
cloudfire, вариант 2 удаляет,1 попробую напишу.