AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken SQL: Tabellenausgabe, User mit gleichen Einträgen
Thema durchsuchen
Ansicht
Themen-Optionen

SQL: Tabellenausgabe, User mit gleichen Einträgen

Ein Thema von Angel4585 · begonnen am 22. Sep 2008 · letzter Beitrag vom 23. Sep 2008
Antwort Antwort
Angel4585

Registriert seit: 4. Okt 2005
Ort: i.d.N.v. Freiburg im Breisgau
2.199 Beiträge
 
Delphi 2010 Professional
 
#1

SQL: Tabellenausgabe, User mit gleichen Einträgen

  Alt 22. Sep 2008, 21:48
Datenbank: MySQL • Version: 5 • Zugriff über: PHP
Hallo,

ich habe folgende Tabellenstruktur:

Multitabelle(User,ip1,ip2,ip3,ip4,lastactive)

ip1-ip4 sind die 4 bestandteile einer ip, also bei 127.0.0.1 wäre:

ip1 = 127
ip2 = 0
ip3 = 0
ip4 = 1

jetz sage ich,
wenn bei zwei unterschiedlichen Usern ip1-ip4 identisch sind, kommen die von der gleichen IP, Multiwahrscheinlichkeit ist also 100%.
wenn bei zwei unterschiedlichen Usern ip1-ip3 identisch sind, ist die Multiwahrscheinlichkeit 75%.
wenn bei zwei unterschiedlichen Usern ip1-ip2 identisch sind, ist die Multiwahrscheinlichkeit 50%.
wenn bei zwei unterschiedlichen Usern ip1 identisch ist, ist die Multiwahrscheinlichkeit 25%.

Jetzt möchte ich eine Liste die mir zB alle User ausgibt die eine Wahrscheinlichkeit von 50% oder höher haben.
Wie mache ich das? Ich hab kp wie ich das in ne SQL-Abfrage packe(vllt steh ich aber au grad etwas aufm Schlauch )

Wär cool wenn ihr mir en Ansatz geben könntet.

Martin Weber
Ich bin ein Rüsselmops
  Mit Zitat antworten Zitat
Benutzerbild von rollstuhlfahrer
rollstuhlfahrer

Registriert seit: 1. Aug 2007
Ort: Ludwigshafen am Rhein
1.529 Beiträge
 
Delphi 7 Professional
 
#2

Re: SQL: Tabellenausgabe, User mit gleichen Einträgen

  Alt 22. Sep 2008, 22:19
HI,

die SQL-Abfrage müsste etwa so aussehen:

SELECT * FROM Tabelle WHERE (ip1 in (SELECT ip1 FROM Tabelle AS Tmp1)) AND (ip2 in (SELECT ip2 FROM Tabelle AS Tmp2)); Von der Sruktur her sollte es richtig sein, ist aber nicht getestet. MYSQL ließt damit die Tabelle 3x aus. 1x für ip1, dann für ip2 und dann für den Rest der Abfrage. Ob die Kombination jetzt gelungen ist, weiß ich nicht.

Bernhard
Bernhard
Iliacos intra muros peccatur et extra!
  Mit Zitat antworten Zitat
omata

Registriert seit: 26. Aug 2004
Ort: Nebel auf Amrum
3.154 Beiträge
 
Delphi 7 Enterprise
 
#3

Re: SQL: Tabellenausgabe, User mit gleichen Einträgen

  Alt 23. Sep 2008, 01:26
SQL-Code:
SELECT *
FROM multitabelle a
INNER JOIN multitabelle b
  ON a.user < b.user
WHERE CASE
        WHEN a.ip1 = b.ip1
             AND a.ip2 = b.ip2
             AND a.ip3 = b.ip3
             AND a.ip4 = b.ip4 THEN 100
        WHEN a.ip1 = b.ip1
             AND a.ip2 = b.ip2
             AND a.ip3 = b.ip3 THEN 75
        WHEN a.ip1 = b.ip1
             AND a.ip2 = b.ip2 THEN 50
        WHEN a.ip1 = b.ip1 THEN 25
        ELSE 0
      END >= 50
Und mit Ausgabe...
SQL-Code:
SELECT *
FROM (SELECT CASE
               WHEN a.ip1 = b.ip1
                    AND a.ip2 = b.ip2
                    AND a.ip3 = b.ip3
                    AND a.ip4 = b.ip4 THEN 100
               WHEN a.ip1 = b.ip1
                    AND a.ip2 = b.ip2
                    AND a.ip3 = b.ip3 THEN 75
               WHEN a.ip1 = b.ip1
                    AND a.ip2 = b.ip2 THEN 50
               WHEN a.ip1 = b.ip1 THEN 25
               ELSE 0
             END mw,
             a.user userA, a.ip1 a_ip1, a.ip2 a_ip2, a.ip3 a_ip3, a.ip4 a_ip4,
             b.user userB, b.ip1 b_ip1, b.ip2 b_ip2, b.ip3 b_ip3, b.ip4 b_ip4
       FROM multitabelle a
       INNER JOIN multitabelle b
         ON a.user < b.user) x
WHERE mw >= 50
  Mit Zitat antworten Zitat
Angel4585

Registriert seit: 4. Okt 2005
Ort: i.d.N.v. Freiburg im Breisgau
2.199 Beiträge
 
Delphi 2010 Professional
 
#4

Re: SQL: Tabellenausgabe, User mit gleichen Einträgen

  Alt 23. Sep 2008, 06:41
räääspäckt, funzt tatsächlich
Großes Danke an omata
Martin Weber
Ich bin ein Rüsselmops
  Mit Zitat antworten Zitat
grenzgaenger
(Gast)

n/a Beiträge
 
#5

Re: SQL: Tabellenausgabe, User mit gleichen Einträgen

  Alt 23. Sep 2008, 07:47
Zitat von Angel4585:
jetz sage ich,
wenn bei zwei unterschiedlichen Usern ip1-ip4 identisch sind, kommen die von der gleichen IP, Multiwahrscheinlichkeit ist also 100%.
du weisst, dass deine annahme logisch Falsch ist
  Mit Zitat antworten Zitat
Angel4585

Registriert seit: 4. Okt 2005
Ort: i.d.N.v. Freiburg im Breisgau
2.199 Beiträge
 
Delphi 2010 Professional
 
#6

Re: SQL: Tabellenausgabe, User mit gleichen Einträgen

  Alt 23. Sep 2008, 08:01
Naja es gibt die Möglichkeit das es tatsächlich zwei unterschiedliche sind die jedoch hinter dem selben Proxy sitzen.
In diesem Fall werden diejenigen benachrichtigt und müssen erklären warum sie die gleiche IP haben.


Oder das jemand ne ip bekommen hat die schonmal wer hatte, klar.
Deswegen gibts das Flag lastactive.
Wenn es der gleiche User ist der die IP wieder hat wird einfach das lastactive flag erneuert.
Wenn es ein anderer ist schau ich wie alt die vorherige ip ist.

Aber es ist sehr unwahrscheinlich das zwei(von aktuell 29) die mein Browsergame spielen die gleiche IP haben, ausser es handelt sich um einen Multi oder eine Familie(eine Familie ist tatsächlich dabei aber die kenne ich)
Martin Weber
Ich bin ein Rüsselmops
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:24 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz