Ich habe zwei Unterabfragen. Hier ist die Ausgabe von Unterabfrage A ....Vergleichen von Unterabfragen
id | date_lat_lng | stat_total | rnum
-------+--------------------+------------+------
16820 | 2016_10_05_10_3802 | 9 | 2
15701 | 2016_10_05_10_3802 | 9 | 3
16821 | 2016_10_05_11_3802 | 16 | 2
17861 | 2016_10_05_11_3802 | 16 | 3
16840 | 2016_10_05_12_3683 | 42 | 2
17831 | 2016_10_05_12_3767 | 0 | 2
17862 | 2016_10_05_12_3802 | 11 | 2
17888 | 2016_10_05_13_3683 | 35 | 2
17833 | 2016_10_05_13_3767 | 24 | 2
16823 | 2016_10_05_13_3802 | 24 | 2
und subquery B, in denen date_lat_lng und stat_total Gemeinsamkeit mit Unterabfrage A, aber id nicht.
id | date_lat_lng | stat_total | rnum
-------+--------------------+------------+------
17860 | 2016_10_05_10_3802 | 9 | 1
15702 | 2016_10_05_11_3802 | 16 | 1
17887 | 2016_10_05_12_3683 | 42 | 1
15630 | 2016_10_05_12_3767 | 20 | 1
16822 | 2016_10_05_12_3802 | 20 | 1
16841 | 2016_10_05_13_3683 | 35 | 1
15632 | 2016_10_05_13_3767 | 23 | 1
17863 | 2016_10_05_13_3802 | 3 | 1
16842 | 2016_10_05_14_3683 | 32 | 1
15633 | 2016_10_05_14_3767 | 12 | 1
Beide Unterabfragen A und B ziehen Daten aus derselben Tabelle. Ich mag die Zeilen in dieser Tabelle löschen, die die gleiche ID als Unterabfrage A teilen, aber nur dort, wo date_lat_lng
und stat_total
haben ein gemeinsames Spiel in Unterabfrage B.
Effektiv ich brauche:
DELETE FROM table WHERE
id IN
(SELECT id FROM (subqueryA) WHERE
subqueryA.date_lat_lng=subqueryB.date_lat_lng
AND subqueryA.stat_total=subqueryB.stat_total)
Außer ich bin Ich bin mir nicht sicher, wo ich die Unterabfrage B platzieren soll oder ob ich eine völlig andere Struktur brauche.
Das war knapp! Vielen Dank. Nur benötigt, um ID aus der USING-Gruppe zu entfernen. DELETE FROM Tabelle WHERE ID IN ( DISTINCT id SELECT FROM subqueryA JOIN subqueryB USING (date_lat_lng, stat_total) ) ' – Kasey