Avaleht
uus teema   vasta Tarkvara »  WWW »  Ühest tabelist saadu sorteerida teise tabeli järgi (MySQL) märgi kõik teemad loetuks
märgi mitteloetuks
vaata eelmist teemat :: vaata järgmist teemat
Hinnavaatlus :: Foorum :: Uudised :: Ärifoorumid :: HV F1 ennustusvõistlus :: Pangalink :: Telekavad :: HV toote otsing
autor
sõnum Saada viide sõbrale.  :: Teata moderaatorile teata moderaatorile
otsing:  
jnt
HV Guru
jnt

liitunud: 10.05.2005



Autoriseeritud ID-kaardiga

sõnum 05.07.2008 12:08:28 Ühest tabelist saadu sorteerida teise tabeli järgi (MySQL) vasta tsitaadiga

Tere! Nimelt oleks selline küsimus, et kas on võimalik, ja kui on, siis kuidas on võimalik teha päringut ühest tabelist, aga tulemused sorteerida teise tabeli järgi. Täpsemalt puudutab jutt brauseripõhise mängu seljakotti. On 2 tabelit:

tbl_inv:
id - unikaalne id
char_id - tegelase id
item_id - asja id

tbl_items
id - unikaalne id
name - nimi
type - tüüp (tavaline tekst igastahes)

ja nüüd tahaks siis teha päringu tbl_inv tabelisse, kuid sorteerida tbl_items'i type ja siis name järgi. Kas selline asi on üldse võimalik?

_________________
Progemisest: https://byteaether.github.io/
Seisab keldris vana 386-486-Pentium1? Räägime! Ehk saan vanakesele uue elu anda. icon_wink.gif
Vaata siia, äkki müün midagi põnevat -> https://www.osta.ee/index.php?fuseaction=listing.seller&q[seller]=jnt
Kommentaarid: 111 loe/lisa Kasutajad arvavad:  :: 2 :: 0 :: 103
tagasi üles
vaata kasutaja infot saada privaatsõnum
DoS
HV veteran
DoS

liitunud: 19.08.2002




sõnum 05.07.2008 12:21:48 vasta tsitaadiga

http://www.w3schools.com/Sql/sql_join.asp
Kommentaarid: 50 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 47
tagasi üles
vaata kasutaja infot saada privaatsõnum
mikk36
HV Guru
mikk36

liitunud: 21.02.2004




sõnum 05.07.2008 12:23:52 vasta tsitaadiga

Select in.id, inv.char_id, inv.item_id From tbl_inv as inv Left Join tbl_items as items on inv.item_id = items.id Where inv.char_id = minginumber Sort by items.type asc, items.name asc
peaks töötama
Kommentaarid: 85 loe/lisa Kasutajad arvavad:  :: 0 :: 2 :: 78
tagasi üles
vaata kasutaja infot saada privaatsõnum
jnt
HV Guru
jnt

liitunud: 10.05.2005



Autoriseeritud ID-kaardiga

sõnum 05.07.2008 12:53:39 vasta tsitaadiga

DoS, tänud lingi eest, suutsin seal oleva infi järgi omale sobiva query kokku klopsida.

mikk36, tänud sullegi, kuid query jäi natuke segaseks, samas, kui DoS'ilt saadud lingilt sain infi nii kätte, et kõik on arusaadav.


Kuid tänud teile mõlemale! icon_biggrin.gif

Query siis:
"SELECT [pre]inventory.* FROM [pre]items LEFT JOIN [pre]inventory ON [pre]items.id=[pre]inventory.item_id WHERE [pre]inventory.char_id=".$char->id." ORDER BY [pre]items.type, [pre]items.name"

(mul eraldi query funktisioon tehtud, mis asendab [pre] alati prefixiga confi failist. $char on tegelase klass, kust võetakse antud juhul siis tegelase id.)

_________________
Progemisest: https://byteaether.github.io/
Seisab keldris vana 386-486-Pentium1? Räägime! Ehk saan vanakesele uue elu anda. icon_wink.gif
Vaata siia, äkki müün midagi põnevat -> https://www.osta.ee/index.php?fuseaction=listing.seller&q[seller]=jnt
Kommentaarid: 111 loe/lisa Kasutajad arvavad:  :: 2 :: 0 :: 103
tagasi üles
vaata kasutaja infot saada privaatsõnum
mikk36
HV Guru
mikk36

liitunud: 21.02.2004




sõnum 05.07.2008 14:52:06 vasta tsitaadiga

thumbs_up.gif

tegelikult et query't arusaadavamaks teha võib ka selle ära treppida

SELECT
   [pre]inventory.*
FROM
   [pre]items
   LEFT JOIN
      [pre]inventory
      ON
         [pre]items.id = [pre]inventory.item_id
WHERE
   [pre]inventory.char_id = ".$char->id."
ORDER BY
   [pre]items.type,
   [pre]items.name
Kommentaarid: 85 loe/lisa Kasutajad arvavad:  :: 0 :: 2 :: 78
tagasi üles
vaata kasutaja infot saada privaatsõnum
nemu
HV vaatleja
nemu

liitunud: 22.01.2002



Autoriseeritud ID-kaardiga

sõnum 07.07.2008 23:06:10 vasta tsitaadiga

Võib ilmselt eeldada, et items tabelis on vastav id olemas.
Seega pole vajadust LEFT JOINi kasutada.
... FROM [pre]inventory JOIN [pre]items ON ([pre]inventory.item_id=[pre]items.id) ...
Kommentaarid: 12 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 11
tagasi üles
vaata kasutaja infot saada privaatsõnum
mikk36
HV Guru
mikk36

liitunud: 21.02.2004




sõnum 07.07.2008 23:51:29 vasta tsitaadiga

samas ei juhtu ka mitte midagi halba sellest
suurt vahet pole jah et kas LEFT või INNER (JOIN = INNER JOIN)
Kommentaarid: 85 loe/lisa Kasutajad arvavad:  :: 0 :: 2 :: 78
tagasi üles
vaata kasutaja infot saada privaatsõnum
näita postitusi alates eelmisest:   
uus teema   vasta Tarkvara »  WWW »  Ühest tabelist saadu sorteerida teise tabeli järgi (MySQL)
[vaata eelmist teemat] [vaata järgmist teemat]
 lisa lemmikuks
näita foorumit:  
 ignoreeri teemat 
sa ei või postitada uusi teemasid siia foorumisse
sa ei või vastata selle foorumi teemadele
sa ei või muuta oma postitusi selles foorumis
sa ei või kustutada oma postitusi selles foorumis
sa ei või vastata küsitlustele selles foorumis
sa ei saa lisada manuseid selles foorumis
sa võid manuseid alla laadida selles foorumis



Hinnavaatlus ei vastuta foorumis tehtud postituste eest.