![]() |
mysql abfrage
vielleicht kann mir wer helfen. habe gegoogelt bis zum gehtnichtmehr.
brauche eine abfrage, die mir doppelte datensätze liefert und davon die mit den niedrigeren ids struktur: id, userid, score, ip, gameid, date, published z.b.: id userid score ip gameid date published 1 62 12 91.114.220.84 4 2010-01-24 12:43:33 1 2 62 20730 233.183.91.69 3 2010-06-02 00:15:17 1 3 62 1889 233.183.91.69 17 2010-02-26 13:51:21 1 4 62 1889 233.183.91.69 12 2010-02-26 13:51:21 1 6 75 36140 94.114.217.99 334 2010-10-14 12:49:33 1 7 65 11625 174.191.197.2 464 2010-10-05 15:55:23 1 8 75 3045 94.114.213.15 8 2011-01-07 20:18:56 1 10 65 3140 242.183.50.94 8 2011-01-08 10:05:06 1 so - also ich möchte von oberen daten nur die id "3" mit allen spalten - userid, score, ip und date sind gleich und davon den datensatz mit der niedrigern "id". kann das wer - es sind insgesamt ca. 10.000 datensätze und auf 500 oder so trifft das zu.. hilfe :cry: |
Das geht mit JOIN. Einfach die gleiche Datenbank per JOIN und den entsprechenden Bedingungen abfragen.
|
sorry - bin ein völliger anfänger - JOIN reicht mir leider nicht
hiermit kann ich alle doppelten anzeigen: SELECT COUNT(*), score, date FROM arc_jvarcade GROUP BY score, date HAVING COUNT(*)>1 das problem ist, es sind nicht immer die richtige - es sollten nur die mit der niedrigeren "id" sein - kommt in meiner abfrage gar nicht vor - aber wie einfügen ?????? |
Bei deiner Wissensbasis reicht googlen nicht.
Du musst dich schon mit SQL auseinandersetzen. Keine Lust dazu? Ist das ein kommerzielles Projekt? |
Zitat:
so wichtig ist es nicht, dass ich meinen hochschulabschluss nachhole. aber ich finde es auch traurig, wenn die "wissenden" mir nicht helfen wollen - ist doch nur eine select-abfrage....:cry: |
wissenbasis ist <0
aber ich sehe schon - hier wird mir nicht geholfen - jeder macht mich fertig anstatt die scheinbar ja so einfache abfrage einfach reinzuschreiben |
Soweit ich das sehe wirst du hier nicht fertig gemacht.
Fakt ist aber das du, statt selber deinen Kopf mal ein klein wenig anzustrengen, lieber den bequemen Weg gehen willst. Ein einfaches googeln nach "Mysql doppelte Datensätze Join" hätte dich z.B. zu diesem Ergebnis geführt : Zitat:
|
Zitat:
Code:
SELECT MIN(id) FROM arc_jvarcade Code:
SELECT * FROM arc_ivarcade |
Zitat:
Siehe erste Antwort... |
Zitat:
|
Die Frage ist doch bereits in diesem Thread beantwortet :rolleyes:
|
Mea culpa, hatte in Deinem Quote das "t1.zahl<t2.zahl" überlesen. :eek:
Aber ob der JOIN bei der ON-Bedingung schneller ist, weiss wohl nur der Optimizer. |
Wenn du meinst.
Lustig aber das du JOIN gar nicht kanntest und selber schreibst das Subselects nicht performant sind. Vielleicht solltest du JOIN erst einmal nutzen bevor du eine Meinung dazu abgibst. |
Wie kommst Du auf die Idee, ich kenne kein JOIN? Ich benutze das nur nicht mit "<"-Bedingung.
Übrigens habe ich grad mal getestet. Die Abfrage mit Subselect ist mit 10.000 Datensätzen deutlich schneller als die Abfrage per JOIN (auf meinem Rechner um den Faktor 2000). Hat sich bei MySQL in den letzten Versionen doch ein bisschen was getan. |
Zitat:
Aber gut, dass Du das rausgefunden hast. Ich werde morgen früh eine Mail an alle 50 Entwickler bei uns schreiben, dass Subselects schneller als JOINS sind und auf diesen Thread verweisen. Du hast es ja mal grad getestet. In der scheint ein unglaubliches Talent zu stecken... dass Du so eine Erkenntnis mal eben testen kannst ohne jemals eine DBA-Qualifikation gehabt zu haben. Suchst Du einen Job? |
Zitat:
Zitat:
Da die Frage des TE beantwortet ist und er sich hier auch nicht mehr zu Wort meldet mache ich hier mal dicht. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:15 Uhr. |
Powered by vBulletin® (Deutsch)
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.