Egy SQL lekérdezésben segítene valaki? Részletek lent.
Van két táblám:
ESEMÉNYEK (azon(PKey), megnevezes, hely, tipus)
Egy esemény több napig is tarthat:
ESEM_DATUMOK (esem_azon(idegen kulcs), dátum)
Olyan lekérdezést szeretnék csinálni, amiben kiíratom az események táblából azokat a sorokat(eseményeket) amik megadott típusúak megadott helyen és napon vannak.
SELECT * FROM ESEMENYEK WHERE hely="xy" AND tipus="yz" ... és a napot hogy oldom meg (az a másik táblában van)?
Tudom, hogy lehet egyszerre két táblából csinálni lekérdezést, de nem tudom hogyan.
Nagyon hálás lennék, ha valaki megoldaná a konkrét példát nekem.
Ha valakiben meglenne a segítő szándék, csak nem elég érthető a kérdés, akkor lécci jelezze, és megpróbálom jobban elmagyarázni.
Már régen írtam SQL-t, de valami ilyesmi, ha más nem szólna hozzá...
SELECT tipus, hely, datum FROM (Esemenyek INNER JOIN Esem_datumok) WHERE Esemenyek.azon = Esem_datumok.esem_azon;
Az előző majdnem jól írta,de JOIN esetén nem WHERE,hanem ON amit használnak.
pl
SELECT megnevezes,tipus, hely, datum FROM Esemenyek,Esem_datumok WHERE Esemenyek.azon = Esem_datumok.esem_azon
vagy
SELECT megnevezes,tipus, hely, datum FROM Esemenyek INNER JOIN Esem_datumok ON Esemenyek.azon = Esem_datumok.esem_azon
Köszönöm a válaszokat, de a sztem, amit írtatok az nem teljesen oldja meg a problémám.
Leírok egy konkrét példát:
ESEMÉNYEK tábla:
azon megnevezés hely tipus
1 Xy találkozó BP találkozó
2 XY tárgyalás Vác tárgyalás
3 YZ tárgyalás Pécs tárgyalás
ESEM_DATUMOK tábla:
esem_azon Dátum
1 2010.01.12
1 2010.01.13
2 2010.01.16
2 2010.01.17
Tehát például szeretném lekérdezni azokat ez eseményeket amiknek típusa tárgyalás, helye pécs és tartozik hozzá 2010.01.16.ai dátum. (minden eseményhez több dátum is tartozik, ezért kell a dátumokat külön táblában tárolni)
Ezt a konkrét példát hogy oldanátok meg?
Azért még egyszer köszi, hogy válaszoltatok :)
2. vagyok
Szóval a gond az,hogy egy dátumot tárolsz,pedig kettő kéne egy kezd_datum,meg egy veg_datum mező.
Utána lehet ilyent csinálni,hogy
SELECT * FROM események INNER JOIN esem_datumok ON esem_datumok.esem_azon=események.azon WHERE
(kezd_datum<="2010.01.08") AND (veg_datum>="2010.01.08")
ez lekérdezi az eseményeket adott napra..
Látatlanban esetleg:
SELECT * FROM Esemenyek INNER JOIN Esem_datumok
ON Esemenyek.azon = Esem_datumok.esem_azon
WHERE hely = "Pécs" AND tipus = "tárgyalás" AND dátum = "2010.01.16";
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!