0

これらの手順を簡素化するにはどうすればよいですか? php/sql コードは、あるテーブルから別のテーブルに存在しない party_id を削除することを目的としています。

// party_id from one table
$array1 = array();
$db->setQuery("SELECT DISTINCT(record) FROM table1");
$contents = $db->loadObjectList();
foreach( $contents As $content ){
    $row = $content->record;
    $array1[] = $row;
}

// get party_id from different table
$array2 = array();
$db->setQuery("SELECT DISTINCT(party_id) FROM table2 WHERE user_id = '$id'");
$contents = $db->loadObjectList();
foreach ( $contents As $content ) {
    $row = $content->party_id;
    $array2[] = $row;
}

// Compare, then delete records existing in array2, but not in array1
$result = array_diff($array2, $array1);
foreach ( $result As $rslt ) {
    $db->setQuery("DELETE FROM table2 WHERE party_id = '$rslt' AND user_id = '$id'");
    $db->query();
}
4

3 に答える 3

0

サブクエリを使用してこれらのレコードを削除することを検討しましたか? 句を使用して、WHERE NOT EXISTS重複していない行を削除できます

http://docs.oracle.com/cd/E17952_01/refman-5.5-en/exists-and-not-exists-subqueries.html

于 2013-07-02T11:33:49.283 に答える