Autor | Zpráva | ||
---|---|---|---|
kořen Profil |
#1 · Zasláno: 21. 8. 2005, 13:26:22
ahoj, potřeboval bych poradit s jednim sql příkazem..
dejme tomu, že mám tyhle 2 tabulky: tabulka1 ----------- id | cas ==|======= 1 | jaro ---|----------- 2 | leto ---|----------- 3 | zima ---|----------- tabulka2 ----------- cas | pocasi ===|===== jaro | slunce ------|-------- leto | mraky ------|------- leto | dest -------|------- zima | dest -------|------- a potřebuju vybrat z tabulky1 nejvetsi ID, ale nemělo by se vybrat takové, kterému by pomocí propojení tabulek pres CAS příslušela v tabulce2 hodnota POCASI dest.... snad je to pochopitelné :) |
||
Leo Profil |
#2 · Zasláno: 21. 8. 2005, 13:36:48
Zkuste
SELECT MAX(id) FROM tabulka1 NATURAL LEFT JOIN tabulka2 WHERE pocasi <> 'dest' Leo |
||
kořen Profil |
#3 · Zasláno: 21. 8. 2005, 14:07:51
nefunguje :(
|
||
Kajman Profil * |
#4 · Zasláno: 21. 8. 2005, 14:24:26
A co tohle?
SELECT MAX(id) FROM tabulka1 as i LEFT JOIN tabulka2 as j on (i.cas=j.cas and j.pocasi='dest') WHERE j.pocasi IS NULL |
||
Leo Profil |
#5 · Zasláno: 21. 8. 2005, 15:26:43 · Upravil/a: Leo
Me jo, zkuste vyhodit ten NATURAL a pridat ON:
SELECT MAX(id) FROM tabulka1 LEFT JOIN tabulka2 ON tabulka1.cas = tabulka2.cas WHERE pocasi <> 'dest' Mimochodem, co mate za databazi (MySQL?) a co znamena "nefunguje"? Leo |
||
Kajman Profil * |
#6 · Zasláno: 21. 8. 2005, 16:42:05
Leo v syntaxi chybu nemáš, ale tvoje řešení není správné, protože vrátí dvojku, ale v leto je dest, takže to nesplňuje zadání.
|
||
Leo Profil |
#7 · Zasláno: 21. 8. 2005, 16:44:43
Aha, ja jsem zadani precetl tak, ze se to na prvnim kde je dest ma zastavit, tak to jsem spatne cetl :-) Pak je jeste otazka - ma to vypsat i cas z prvni tabulky, ktery se v druhe tabulce vubec neobjevi? Leo
|
||
Kajman Profil * |
#8 · Zasláno: 21. 8. 2005, 16:52:21
Jasně že jo, jenom to nemá vypsat to, kde je déšť.
|
||
Časová prodleva: 19 let
|
Toto téma je uzamčeno. Odpověď nelze zaslat.
0