SELFPHP: Version 5.8.2 Befehlsreferenz - Tutorial – Kochbuch – Forum für PHP Einsteiger und professionelle Entwickler

SELFPHP


Professional CronJob-Service

Suche



CronJob-Service    
bei SELFPHP mit ...



 + minütlichen Aufrufen
 + eigenem Crontab Eintrag
 + unbegrenzten CronJobs
 + Statistiken
 + Beispielaufrufen
 + Control-Bereich

Führen Sie mit den CronJobs von SELFPHP zeitgesteuert Programme auf Ihrem Server aus. Weitere Infos



:: Buchempfehlung ::

Einführung in XHTML, CSS und Webdesign

Einführung in XHTML, CSS und Webdesign zur Buchempfehlung
 

:: Anbieterverzeichnis ::

Globale Branchen

Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP  

 

:: Newsletter ::

Abonnieren Sie hier den kostenlosen SELFPHP Newsletter!

Vorname: 
Name:
E-Mail:
 
 

Zurück   PHP Forum > SELFPHP > PHP für Fortgeschrittene und Experten
Hilfe Community Kalender Heutige Beiträge Suchen

PHP für Fortgeschrittene und Experten Fortgeschrittene und Experten können hier über ihre Probleme und Bedenken talken

Antwort
 
Themen-Optionen Ansicht
  #1  
Alt 17.06.2003, 12:01:40
bombel bombel ist offline
Anfänger
 
Registriert seit: Mar 2002
Beiträge: 7
MySQL, Sortierung nach Feld in 2ter Tabelle

Hallo,

ich bin mal wieder auf Eure Hilfe angewiesen.

ich habe zwei Tabellen, jeweils mit einem Feld mit selbem UNIQUE-Inhalt (als Primärschlüssel sozusagen).

In der Tabelle1 steht jetzt z.B.:

ID Name
1 Max
2 Manfred

und in Tabelle2 z.B.:
ID Ergenis
1 12
2 5

Kann mir jemand verraten, wie ich innerhalb EINER Abfrage aus Tabelle1 die Namen nach Ergebnis in Tabelle2 sortieren kann?

Danke im Voraus!!!

LG, Uwe Bombel
Mit Zitat antworten
  #2  
Alt 17.06.2003, 12:24:07
c4 c4 ist offline
SELFPHP Guru
 
Registriert seit: Jul 2002
Ort: Oberursel
Alter: 54
Beiträge: 4.748
Also wenn ich das richtig verstanden habe, dann kommst Du ungefähr so zum Ziel:
Code:
SELECT name
FROM tab1 INNER JOIN tab2 ON tab1.id=tab2.ergebnis
Somit wird jeder Person das gespeicherte Ergebnis zugewiesen.
__________________
sic!
--> http://dbCF.de/
Mit Zitat antworten
  #3  
Alt 17.06.2003, 13:04:59
MiH MiH ist offline
Member
 
Registriert seit: Aug 2002
Beiträge: 775
Code:
SELECT tab1.name FROM tab1 INNER JOIN tab2 using(id) order by tab2.ergebnis desc;
id müssen gleich sein. also auch vom typ! int(10) z.B. dann gehts schon mal schneller.
Mit Zitat antworten
  #4  
Alt 17.06.2003, 13:09:41
c4 c4 ist offline
SELFPHP Guru
 
Registriert seit: Jul 2002
Ort: Oberursel
Alter: 54
Beiträge: 4.748
Wo ist jetzt der Unterschied zu meiner Variante? Mal vom leicht abweichend Aufbau abgesehen. Funktionieren sollten sie ja beide.
__________________
sic!
--> http://dbCF.de/
Mit Zitat antworten
  #5  
Alt 17.06.2003, 17:47:13
MiH MiH ist offline
Member
 
Registriert seit: Aug 2002
Beiträge: 775
also die abfragen sind total unterschiedlich und deine ist fehlerhaft!

Code:
ON tab1.id=tab2.ergebnis
du vergleichst tab1.id mit tab2.ergebnis also hast du nie eine übereinstimmung.

Code:
INNER JOIN tab2 using(id)
hier werden aus beiden tabellen die spalten id verglichen was schon mal mehr sinn macht :) und sortiert wird dann auch noch. so sollte es ja sein.
Mit Zitat antworten
  #6  
Alt 17.06.2003, 17:49:11
c4 c4 ist offline
SELFPHP Guru
 
Registriert seit: Jul 2002
Ort: Oberursel
Alter: 54
Beiträge: 4.748
Die Namen der Felder müssen nicht gleich sein, nur die Typen und da bin ich von ausgegangen, dass sie es sind. Falsch ist es also nicht.
Aber okay, die Sortierung hatte ich vergessen.
__________________
sic!
--> http://dbCF.de/
Mit Zitat antworten
  #7  
Alt 17.06.2003, 17:56:37
MiH MiH ist offline
Member
 
Registriert seit: Aug 2002
Beiträge: 775
natürlich ist es falsch.
man kann nicht 2 unterschiedlich spalten mit einem inner join vergleichen. auf die bezeichnung kommts hier auch nciht an, davon war nie die rede. bitte teste doch mal deinen query und meinen!

deine abfrage würde so aussehen:
Code:
1 == 12 => nein
1 == 5 => nein
2 == 12 => nein
2 == 5 => nein
jetzt sag bloss nicht das das noch ok ist?! ich glaub da muss ich mal durch den monitor schlagen.
die korrekte abfrage wäre bei einem inner join
Code:
t1      t2     result
1  == 1      12        => ja
2  == 2      5          => ja
es darf also nur 1 ergebnis jeweils auftauchen bei diesen beispiel mit dem korrekten resultat.
Mit Zitat antworten
  #8  
Alt 17.06.2003, 18:04:27
c4 c4 ist offline
SELFPHP Guru
 
Registriert seit: Jul 2002
Ort: Oberursel
Alter: 54
Beiträge: 4.748
Ich suche schon verzweifelt nach einer glaubwürdigen Ausrede, aber mehr als die Tatsache, dass ich die Tabelle 2 unrichtig interpretiert habe fällt mir leider nichts ein. : (

Punkt für Dich.
__________________
sic!
--> http://dbCF.de/
Mit Zitat antworten
  #9  
Alt 17.06.2003, 18:26:45
MiH MiH ist offline
Member
 
Registriert seit: Aug 2002
Beiträge: 775
naja ne ausrede brauchst du nicht.
du hast die frage falsch verstanden und dann den query falsch zusammen gesetzt. das ist alles.
hier nochmal ein beispiel:
Code:
mysql> select * from tab1 order by id asc;
+----+----------+
| id | name     |
+----+----------+
|  1 | Testuser |
|  2 | Manfred  |
|  3 | Horst    |
+----+----------+
3 rows in set (0.00 sec)
Code:
mysql> select * from tab2 order by id asc;
+----+--------+
| id | points |
+----+--------+
|  2 |      1 |
|  3 |     10 |
+----+--------+
2 rows in set (0.00 sec)
Code:
mysql> select tab1.name,tab2.points from tab1 inner join tab2 using(id) order by
 tab2.points desc;
+---------+--------+
| name    | points |
+---------+--------+
| Horst   |     10 |
| Manfred |      1 |
+---------+--------+
2 rows in set (0.00 sec)
und nun hier deine variante:
Code:
mysql> select tab1.name,tab2.points from tab1 inner join tab2 on tab1.id = tab2.
points order by tab2.points desc;
+----------+--------+
| name     | points |
+----------+--------+
| Testuser |      1 |
+----------+--------+
1 row in set (0.00 sec)
testuser hat ein punkt obwohl dieser punkt manfred gehört.
somit sollte jetzt aber alles klar sein. :)
Mit Zitat antworten
Antwort


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind aus.
[IMG] Code ist aus.
HTML-Code ist aus.

Gehe zu


Alle Zeitangaben in WEZ +2. Es ist jetzt 16:44:20 Uhr.


Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.


© 2001-2024 E-Mail SELFPHP OHG, info@selfphp.deImpressumKontakt