Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blog
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Forum översikt / inlägg

Posta nytt inlägg


Hämta högsta värdet / användare

Postades av 2004-10-24 14:40:08 - Mattias Eriksson, i forum mysq, Tråden har 11 Kommentarer och lästs av 774 personer

Kan någon ge mig vägledning hur jag ska forumlera min fråga för att få fram högsta poängen för varje "user" med tillhörande information (se förutsättningar och önskat resultat nedan)
Databas: MySQL

Tabell: user
id_user name comment mm mm mm
(int) varchar varchar
1 Person1 bla bla
2 Person2 bla bla
3 Person3 bla bla
4 Person4 bla bla

Tabell: user_start
id_user id_start score
(int) (int) (int)
1 1 500
1 2 656
2 1 null
2 4 613
3 2 518
3 3 624
3 6 575
4 2 668
4 3 525

Jag vill alltså ha hjälp med en fråga som kan ge mig svaret

id_user Name Comment id_start score
1 Person1 bla bla 2 656
2 Person2 bla bla 4 613
3 Person3 bla bla 3 624
4 Person4 bla bla 2 668


Svara

Sv: Hämta högsta värdet / användare

Postades av 2004-10-24 15:11:02 - Per Persson

Vilken version av MySQL har du?


Svara

Sv: Hämta högsta värdet / användare

Postades av 2004-10-24 15:26:50 - Mattias Eriksson

Version 4.0.21


Svara

Sv: Hämta högsta värdet / användare

Postades av 2004-10-24 16:41:42 - Per Persson

Om du klarar dig utan fältet id_start kan du pröva den här:

CREATE TEMPORARY TABLE temp
SELECT user.id_user, user.name, user.comment, MAX(user_start.score) AS max_score
FROM user
LEFT JOIN user_start
	USING (id_user)
ORDER BY user.id_user ASC


Svara

Sv: Hämta högsta värdet / användare

Postades av 2004-10-24 17:40:44 - Mattias Eriksson

Tyvärr klarar jag mig inte utan det fältet. Annars hade det inte varit några problem att lösa frågan på egen hand. Fler förslag?


Svara

Sv: Hämta högsta värdet / användare

Postades av 2004-10-24 19:13:34 - Per Persson

Tja, det går att köra flera frågor:

CREATE TEMPORARY TABLE temp
SELECT user.id_user, MAX(user_start.score) AS max_score
FROM user
INNER JOIN user_start
    USING (id_user)
ORDER BY user.id_user ASC

SELECT *
FROM user
LEFT JOIN temp ON user.id_user = temp.id_user
INNER JOIN user_start ON temp.id_user = user_start.id_user AND temp.max_score = user_start.score
ORDER BY id_user


Svara

Sv: Hämta högsta värdet / användare

Postades av 2004-10-25 19:01:33 - Ulf Magnusson

Hej!

Som vanligt så har jag inte fått in "standard"-syntaxen, med här kommer ett
förslag med "Oracle"-syntax som du kanske kan översätta.

select user.id_user, user.name, user.comment, user_start.id_start, user_start.score
from user, user_start
where user.id_user = user_start.id_user
and score = (select max(us2.score) from user_start us2 where us2.user_id = user.id_user)

/Uffe


Svara

Sv: Hämta högsta värdet / användare

Postades av 2004-10-25 20:44:06 - Per Persson

Eftersom han har version 4.0.21 kan han inte köra med en nästlad fråga (subquery). Stöd för sådana kom i version 4.1.x.


Svara

Sv: Hämta högsta värdet / användare

Postades av 2004-10-25 21:21:45 - Mattias Eriksson

Har fått förslag på en lösning som verkar fungera.
Vet dock inte om den är optimal men då databasen kommer ha en relativt begränsad mängd data samt att uppskattat antal samtidiga användare också är begränsat så nöjer jag mig med denna lösning.

Tack iaf för visat intresse.


Svara

Sv: Hämta högsta värdet / användare

Postades av 2004-10-25 21:43:13 - Per Persson

Menar du min lösning ovan eller har du fått en från annat håll? Det skulle i så fall vara intressant att se den.


Svara

Sv: Hämta högsta värdet / användare

Postades av 2004-10-25 22:12:08 - Mattias Eriksson

<code>
select u.id_user
,name
,comment
,us1.id_start
,us1.score
from user u
join user_start us1 on u.id_user = us1.id_user
join user_start us2 on us1.id_user = us2.id_user
group by
u.id_user
,name
,comment
,us1.id_start
,us1.score
having us1.score = max(us2.score)
</code>


Svara

Sv: Hämta högsta värdet / användare

Postades av 2004-10-25 23:47:04 - Per Persson

I princip precis samma sak som jag gör med två satser. Är litet osäker på vilket som är snabbast, men misstänker (inte bara av egoskäl ;-) att min är snabbast. Pröva gärna båda.


Svara

Nyligen

  • 09:09 Vill du köpa medicinska tester?
  • 12:47 Vem beviljar assistansen – kommune
  • 14:17 Någon med erfarenhet av hemstädnin
  • 14:14 Bör man använda sig av en båtförme
  • 14:12 Finns det någon intressant hundblo
  • 14:25 Tips på verktyg för att skapa QR-k
  • 14:23 Tips på verktyg för att skapa QR-k
  • 20:52 Fungerer innskuddsbonuser egentlig

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 569 154
27 952
271 704
666
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.7169.18070 (2019-08-18 10:02:21) 4.0.30319.42000
  • Om
  • Kontakta
  • Regler
  • Cookies