Autor Zpráva
kořen
Profil
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
Zkuste

SELECT MAX(id) FROM tabulka1 NATURAL LEFT JOIN tabulka2 WHERE pocasi <> 'dest'

Leo
kořen
Profil
nefunguje :(
Kajman
Profil *
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
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 *
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
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 *
Jasně že jo, jenom to nemá vypsat to, kde je déšť.
Toto téma je uzamčeno. Odpověď nelze zaslat.

0