Hinnavaatlus
:: Foorum
:: Uudised
:: Ärifoorumid
:: HV F1 ennustusvõistlus
:: Pangalink
:: Telekavad
:: HV toote otsing
|
autor |
|
jnt
HV Guru

liitunud: 10.05.2005
|
05.07.2008 12:08:28
Ühest tabelist saadu sorteerida teise tabeli järgi (MySQL) |
|
|
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.
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 |
|
 |
DoS
HV veteran

liitunud: 19.08.2002
|
|
Kommentaarid: 50 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
47 |
|
tagasi üles |
|
 |
mikk36
HV Guru

liitunud: 21.02.2004
|
05.07.2008 12:23:52
|
|
|
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 |
|
 |
jnt
HV Guru

liitunud: 10.05.2005
|
05.07.2008 12:53:39
|
|
|
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!
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.
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 |
|
 |
mikk36
HV Guru

liitunud: 21.02.2004
|
05.07.2008 14:52:06
|
|
|
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 |
|
 |
nemu
HV vaatleja

liitunud: 22.01.2002
|
07.07.2008 23:06:10
|
|
|
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 |
|
 |
mikk36
HV Guru

liitunud: 21.02.2004
|
07.07.2008 23:51:29
|
|
|
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 |
|
 |
|
lisa lemmikuks |
|
|
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
|
|