NL: 3x Victron Multiplus II 5000VA, 1x Victron SmartSolar MPPT RS 450/200, 50kWh (3x Yixiang v2 met EVE MB30's) | IT: Deye SUN-15K-SG01HP3-EU-AM2, Deye BOS-G50 Pro (51,2kWh HV)
Verwijderd
1
| DELETE FROM prices WHERE id IN (SELECT id FROM prices GROUP BY artlcode HAVING COUNT(artlcode) > 1); |
Verwijderd
Te laatDizzyWeb schreef op donderdag 23 februari 2006 @ 15:09:
Eerste dat in me op komt, kan je niet "HAVING COUNT(...) > 1" doen?
De subquery werkt nu, nu krijg ik echter het volgende probleem:
1
2
| Error Code : 1093 You can't specify target table 'prices' for update in FROM clause |
[ Voor 6% gewijzigd door OverSoft op 23-02-2006 15:12 ]
NL: 3x Victron Multiplus II 5000VA, 1x Victron SmartSolar MPPT RS 450/200, 50kWh (3x Yixiang v2 met EVE MB30's) | IT: Deye SUN-15K-SG01HP3-EU-AM2, Deye BOS-G50 Pro (51,2kWh HV)
Verwijderd
| DELETE FROM prices WHERE id IN (SELECT id, COUNT(artlcode) as aantal FROM prices GROUP BY id HAVING aantal > 1); |
Verwijderd
Wat doet je query eigenlijkOverSoft schreef op donderdag 23 februari 2006 @ 15:12:
Okee, that was kinda dumb...
De subquery werkt nu, nu krijg ik echter het volgende probleem:
code:
1 2 Error Code : 1093 You can't specify target table 'prices' for update in FROM clause
[ Voor 7% gewijzigd door Verwijderd op 23-02-2006 15:14 ]
Wanneer je je subquery runt op een temp-table ( SELECT .. as temp) zou het moeten werken.
(Tenzij ik echt helemaal aan mijn suikerspiegel moet werken)
Ontdek mij!
Proud NGS member
Stats-mod & forum-dude
Verwijderd
Ah, nu zie ik het..Peter schreef op donderdag 23 februari 2006 @ 15:15:
Dubbellen verwijderen?
Moet denk ik dan idd met een temp-table
Mijn tabel bestaat uit 4 columns:Verwijderd schreef op donderdag 23 februari 2006 @ 15:13:
[...]
Wat doet je query eigenlijkJe haalt alle ID's weg op deze manier
id - artlcode - countfrom - price
ID is, tsja, id
Artlcode is een productcode
CountFrom is een aantal vanaf waar de prijs geldt.
Price is de prijs die vanaf die countfrom geldt.
Nu is er wegens een programmeer foutje meerdere rows ingeslopen die allebei dezelfde artlcode en countfrom = 1 hebben. (Op deze site zijn alle counts 1, echter op enkele andere niet, ik gebruik dit script voor meer sites).
Nu moet er van elke artlcode 1 overblijven.
Dat probeer ik hiermee te bereiken (alle dubbele rijen zijn enkel dubbel, dus niet dat zij er 3x instaan ofzo).
[ Voor 3% gewijzigd door OverSoft op 23-02-2006 15:19 ]
NL: 3x Victron Multiplus II 5000VA, 1x Victron SmartSolar MPPT RS 450/200, 50kWh (3x Yixiang v2 met EVE MB30's) | IT: Deye SUN-15K-SG01HP3-EU-AM2, Deye BOS-G50 Pro (51,2kWh HV)
Verwijderd
DELETE FROM prices GROUP BY artlcode COUNT(artlcode) > 1
Of zoals mijn voorganger zegt met een temp-tabel:
CREATE TEMPORARY TABLE tmptable
SELECT A.* FROM table1 AS A, table1 AS B
WHERE A.username LIKE '%2'
AND A.ID = B.ID
AND A.username <> B.username;
DELETE table1 FROM table1
INNER JOIN tmptable
ON table1.username = tmptable.username;
[ Voor 49% gewijzigd door Verwijderd op 23-02-2006 15:21 ]
Verwijderd
Kweenie, maar dat zou met een HAVING moeten, kweet niet of dat met een DELETE FROM ook werktVerwijderd schreef op donderdag 23 februari 2006 @ 15:20:
Swaptor, nope je suikerspiegel is goedOp de ene plek vraag je dingen op uit de tabel, op een andere plek gooi je ze weg... Waarom doe je niet iets als
DELETE FROM prices GROUP BY artlcode COUNT(artlcode) > 1
[ Voor 88% gewijzigd door Verwijderd op 23-02-2006 15:21 ]
1
2
3
| CREATE TEMPORARY TABLE mytemptable SELECT id FROM prices GROUP BY artlcode HAVING COUNT(artlcode) > 1; DELETE FROM prices WHERE id IN (SELECT id FROM mytemptable); DROP TABLE mytemptable; |
Thnx allemaal
[ Voor 19% gewijzigd door curry684 op 23-02-2006 16:38 . Reden: graag geen lichaamsdelen in je queries ]
NL: 3x Victron Multiplus II 5000VA, 1x Victron SmartSolar MPPT RS 450/200, 50kWh (3x Yixiang v2 met EVE MB30's) | IT: Deye SUN-15K-SG01HP3-EU-AM2, Deye BOS-G50 Pro (51,2kWh HV)
Verwijderd
Nu nog een normale naamOverSoft schreef op donderdag 23 februari 2006 @ 15:26:
Yep fixed it:
SQL:
1 2 3 CREATE TEMPORARY TABLE mytemptable SELECT id FROM prices GROUP BY artlcode HAVING COUNT(artlcode) > 1; DELETE FROM prices WHERE id IN (SELECT id FROM mytemptable); DROP TABLE mytemptable;
Thnx allemaal
[ Voor 6% gewijzigd door curry684 op 23-02-2006 16:38 ]
NL: 3x Victron Multiplus II 5000VA, 1x Victron SmartSolar MPPT RS 450/200, 50kWh (3x Yixiang v2 met EVE MB30's) | IT: Deye SUN-15K-SG01HP3-EU-AM2, Deye BOS-G50 Pro (51,2kWh HV)