AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein [MySQL] Zwei Unterschiedliche Abfragen in ein Query
Thema durchsuchen
Ansicht
Themen-Optionen

[MySQL] Zwei Unterschiedliche Abfragen in ein Query

Ein Thema von faux · begonnen am 30. Sep 2005 · letzter Beitrag vom 30. Sep 2005
Antwort Antwort
Benutzerbild von faux
faux

Registriert seit: 18. Apr 2004
Ort: Linz
2.044 Beiträge
 
Turbo Delphi für Win32
 
#1

[MySQL] Zwei Unterschiedliche Abfragen in ein Query

  Alt 30. Sep 2005, 14:47
Hallo!

Wie kann ich denn in MySQL zwei SELECT's in eine zusammenfassen?
Bsp:

Tabelle hat spalte name (varchar), rang (int) und datum (int):
Code:
+--------+------+------------+
| Name  | Rang | Datum     |
+--------+------+------------+
| Hammer | 4    | 1104582262 |
| Messer | 5    | 1112358262 |
| Lampe | 1    | 1112705662 |
| Gabel | 3    | 1112703862 |
| Stift | 2    | 1120568062 |
+--------+------+------------+
Ich will in einem einzigen SELECT das Element mit dem höchsten Rang und mit dem höchsten Datum (also das neueste) abfragen.
Wie geht das?

Danke schon mal.
Grüße
Faux

NACHTRAG:

Das "Ergebnis" sollte so aussehen:

Code:
+---------+--------+
| Highest | Newest |
+---------+--------+
| Messer | Stift |
+---------+--------+
Faux Manuel
Wer weiß, dass er nichts weiß, weiß mehr, als der der nicht weiß, dass er nichts weiß.
GoTrillian
  Mit Zitat antworten Zitat
Benutzerbild von RavenIV
RavenIV

Registriert seit: 12. Jan 2005
Ort: Waldshut-Tiengen
2.875 Beiträge
 
Delphi 2007 Enterprise
 
#2

Re: [MySQL] Zwei Unterschiedliche Abfragen in ein Query

  Alt 30. Sep 2005, 14:53
SELECT * FROM tabelle WHERE (a = b) AND (b = c)
Klaus E.
Linux - das längste Text-Adventure aller Zeiten...
Wer nie Linux mit dem vi konfiguriert hat, der hat am Leben vorbei geklickt.
  Mit Zitat antworten Zitat
Benutzerbild von faux
faux

Registriert seit: 18. Apr 2004
Ort: Linz
2.044 Beiträge
 
Turbo Delphi für Win32
 
#3

Re: [MySQL] Zwei Unterschiedliche Abfragen in ein Query

  Alt 30. Sep 2005, 14:59
Danke für die Antwort, aber jetzt weiß ich genau so viel wie vorher...
Was ist a, b und c?
Faux Manuel
Wer weiß, dass er nichts weiß, weiß mehr, als der der nicht weiß, dass er nichts weiß.
GoTrillian
  Mit Zitat antworten Zitat
Benutzerbild von r_kerber
r_kerber

Registriert seit: 11. Feb 2003
Ort: Trittau
3.538 Beiträge
 
Delphi XE Professional
 
#4

Re: [MySQL] Zwei Unterschiedliche Abfragen in ein Query

  Alt 30. Sep 2005, 15:07
Zitat von faux:
Was ist a, b und c?
Mach Dir darüber keine Gedanken, so einfach geht's auf jeden Fall nicht. Ich teste gerade aber habe noch keine Lösung. Ist doch etwas aufwändiger.
  Mit Zitat antworten Zitat
Benutzerbild von Sharky
Sharky

Registriert seit: 29. Mai 2002
Ort: Frankfurt
8.251 Beiträge
 
Delphi 2006 Professional
 
#5

Re: [MySQL] Zwei Unterschiedliche Abfragen in ein Query

  Alt 30. Sep 2005, 15:15
Hai,

das es als eine Ergebnisszeile zurück kommt dürfte schwer sein
Aber wenn es Dir nichts ausmacht das Du einfach zwei Zeilen bekommst (die erste für den mit dem höchsten Datum und die zweite für den höchsten Rang) dann kannst Du mal das versuchen:
SQL-Code:
SELECT *
FROM highscore
WHERE rang IN (SELECT MAX(RANG) FROM highscore)
OR datum IN (SELECT MAX(datum) FROM highscore)
ORDER BY datum
EDIT Eventuell doch nicht so schwer?
SQL-Code:
SELECT highscore.name AS Highest, highscore_temp.name AS Newest
FROM highscore CROSS JOIN highscore highscore_temp
ORDER BY highscore.rang DESC, highscore_temp.datum DESC
LIMIT 1
Edit - 2 nach einem Denkanstoss von r_kerber
SQL-Code:
SELECT a.name AS highest, b.name AS Newest
FROM highscore a, highscore b
WHERE a.rang= (SELECT MAX(rang) FROM highscore)
AND b.datum = (SELECT MAX(datum) FROM highscore)
Für die SUB-Querys ist mySQL >= 4.1 notwendig.
Stephan B.
"Lasst den Gänsen ihre Füßchen"
  Mit Zitat antworten Zitat
Benutzerbild von Jelly
Jelly

Registriert seit: 11. Apr 2003
Ort: Moestroff (Luxemburg)
3.741 Beiträge
 
Delphi 2007 Professional
 
#6

Re: [MySQL] Zwei Unterschiedliche Abfragen in ein Query

  Alt 30. Sep 2005, 17:20
Und noch ne Variante:
SQL-Code:
select * from Liste order by Rand desc, Datum desc limit 0,1
union
select * from Liste order by Rand Datum limit 0,1
Subselects gehen erst bei MySQL ab Version 4.1. Unions immerhin schon ab 4.0
  Mit Zitat antworten Zitat
Benutzerbild von Sharky
Sharky

Registriert seit: 29. Mai 2002
Ort: Frankfurt
8.251 Beiträge
 
Delphi 2006 Professional
 
#7

Re: [MySQL] Zwei Unterschiedliche Abfragen in ein Query

  Alt 30. Sep 2005, 17:45
Hai Jelly,

bei deiner Variante bekomme ich einen Fehler.
Zitat:
[localhost]FEHLER 1221: Incorrect usage of UNION and ORDER BY
Stephan B.
"Lasst den Gänsen ihre Füßchen"
  Mit Zitat antworten Zitat
Benutzerbild von Jelly
Jelly

Registriert seit: 11. Apr 2003
Ort: Moestroff (Luxemburg)
3.741 Beiträge
 
Delphi 2007 Professional
 
#8

Re: [MySQL] Zwei Unterschiedliche Abfragen in ein Query

  Alt 30. Sep 2005, 18:24
Zitat von Sharky:
bei deiner Variante bekomme ich einen Fehler.
Zitat:
[localhost]FEHLER 1221: Incorrect usage of UNION and ORDER BY
Ich Dusel, der Order by Teil darf nur hinter den beiden Selects kommen.... Somit ist mein Lösungsvorschlag zu verwerfen
  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 19:06 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