Je suppose que t1id dans le tableau 1 et t2id dans table2 est la clé primaire pour les tables correpondant.
si oui la vous pouvez utiliser l'approche suivante -
1) que vous souhaitez supprimer à la fois les tables, vous devez stocker les t1id (ou t2id) dans une table temporaire de sorte que vous pouvez utiliser les valeurs pour la suppression de la deuxième table
2) pour extraire le t1id/t2id désiré, vous devez grouper la table jointe avec T1name, Data1, Data2, Data3 et sélectionner l'enregistrement où vous obtenez plusieurs enregistrements.
3) Exclure un seul t1id des enregistrements en double trouvés pour la suppression.
donc pour cela, vous pouvez utiliser certaines commandes comme ci-dessous -
CREATE TABLE test_table
as (SELECT T1id
FROM Table1, Table2
WHERE T1name, Data1, Data2,
Data3 IN (SELECT T1name, Data1, Data2, Data3
FROM (SELECT T1name, Data1, Data2, Data3, COUNT(*)
FROM Table1, Table2
WHERE T1id = T2id
GROUP BY T1name, Data1, Data2, Data3
HAVING COUNT(*) > 1))
AND T1id NOT IN (SELECT MIN(T1id)
FROM Table1, Table2
WHERE T1id = T2id
GROUP BY T1name, Data1, Data2, Data3));
DELETE FROM Table1 WHERE T1id IN (SELECT T1id FROM Test_Table);
DELETE FROM Table2 WHERE T2id IN (SELECT T1id FROM Test_Table);
COMMIT;
Drop TABLE Test_Table;
Qu'est-ce que [SGBDR] (http://en.wikipedia.org/wiki/Relational_database_management_system) que vous utilisez? 'RDBMS' signifie * Relational Database Management System *. 'RDBMS est la base pour SQL', et pour tous les systèmes de base de données modernes comme MS SQL Server, IBM DB2, Oracle, MySQL, etc ... –
whups ... va éditer la question: MS SQL Server – user2366153
Pour les enregistrements en double, sont-ils avoir des ID différents (T1ID, T2ID). Comprendre à partir de la question que T1ID = T2ID, mais si deux lignes (A et B) ont le même nom et les données, est-ce que T1ID (pour A) = T1ID (pour B)? – user1676075