Üdv;
-nagyon béna vagyok ehhez :(
-adott 3 tábla: dolgozo, dolgozo_szla, szamfejtes; dolgozoban: Id, Nev; dolgozo_szlaban: ID, DolgozoID; a szamfejtesben: dolgozo_szlaID, fizetés;
-a dolgozo_szla kapcsolja össze a kettőt és kellene egy olyan lekérdezés, ami Név, fizetés párokat dob;
-pl. dolgozo (47, zumy) dolgozo_szla (27,47) szamfejtes (27,50000) ; ebből kellene: zumy 50000
-tudom, h ez nagyon alap, de sehogy se jön össze; ill. csak sima sql parancsok játszanak
Előre is köszönöm!
zümy
- 1495 megtekintés
Hozzászólások
SELECT * FROM dolgozo, dolgozo_szla, szamfejtes WHERE dolgozo.ID=dolgozo_szla.DolgozoID AND szamfejtes.dolgozo_szlaID=dolgozo_szla.ID
AND dolgozo.ID='47'
ha jól értem mit szeretnél.
pch
--
SB-soft online ügyviteli rendszer
--
- A hozzászóláshoz be kell jelentkezni
igen, de elnézést, rosszul fogalmaztam; kb. eddig jutottam el én is; de ez kb. 341 dolgozóra kell és minden héten más lesz a dolgozo_szla.ID :(
- A hozzászóláshoz be kell jelentkezni
Gondolom, valami ilyesmi:
SELECT dolgozo.Nev, szamfejtes.fizetes FROM dolgozo
LEFT JOIN ON (dolgozo.Id=dolgozo_szla.DolgozoID)
LEFT JOIN ON (szamfejtes.dolgozo_szlaID=dolgozo_szla.dolgozo_szla.ID)
Van annak valami oka, hogy a dolgozo_szla
-ban van benne az ID
, nem pedig a dolgozo
-ban? Vagy egy dolgozóhoz tartozhat több fizetés is?
- A hozzászóláshoz be kell jelentkezni
Esetleg havonta :D
- A hozzászóláshoz be kell jelentkezni
Ah, rosszul kérdeztem :)
Persze a havonta (vagy bármilyen időközönkénti) fizetés esetén is felesleges a dolgozo_szla
(legalábbis ennyi ismerettel).
- A hozzászóláshoz be kell jelentkezni
köszi, kipróbálom; és igen, itt tárolódnak a heti fizuk ömlesztve 3xx dolgozóra; ill. hetente ennyivel nővekszik
- A hozzászóláshoz be kell jelentkezni
Egy az egyben válaszolni pedagógiai szempontból nem az igazi, úgyhogy küzdjél vele kicsit :)
VÁLOGASSADKIA dolgozo.Nev, szamfejtes.fizetés INNENNI fizetés BELSŐ CSATOLVA dolgozo_szla AMIKOR fizetés.dolgozo_szlaID=dolgozo_szla.ID BELSŐ CSATOLVA dolgozo AMIKOR dolgozo.Id=dolgozo_szla.DolgozoID
Felteszem a dolgozo_szla-ban vannak még mezők, nem csak két oszlop (mert akkor felesleges... hasonlóan a dolgozo is, ha az ID-je mesterséges és csak ID - Név map van benne)
BlackY
--
"en is amikor bejovok dolgozni, nem egy pc-t [..] kapcsolok be, hanem a mainframe-et..." (sj)
- A hozzászóláshoz be kell jelentkezni
-köszi, ezt próbálom :)
-egyebként igen, több adat is van, pl. a BoltID-je ahol dolgozott; ill. a könyvelés dátuma, de azokkal már elboldogultam;
- A hozzászóláshoz be kell jelentkezni
Köszönöm mindenkinek a segítséget, megoldva ill. asszem meg is értettem, mert sok ilyet kell szeptemberig írogatnom: pl. üzletek forgalma, kiadások, ezek aránya stb.
-egyébként nem szép, de így sikerült:
SELECT dolgozo.Nev, szamfejtes.Ber FROM dolgozo
left join dolgozo_szla on (dolgozo.ID=dolgozo_szla.DolgozoID)
left join szamfejtes on (szamfejtes.Dolgozo_szlaID=dolgozo_szla.ID)
where ber !=0
- A hozzászóláshoz be kell jelentkezni
Nincs ezzel baj szerintem. :)
megjegyzés: A ber !=0 miatt kb felesleges a left hasznalata.
vagy ha megis elofordulahtnak hianyok a tablakban akkor:
left join szamfejtes on (szamfejtes.Dolgozo_szlaID=dolgozo_szla.ID AND ber !=0 )
javalok a where helyett, igy nem veszitesz el egyteln dolgozotsem a dolgozo tablabol....
- A hozzászóláshoz be kell jelentkezni
thx :)
- A hozzászóláshoz be kell jelentkezni
Az a szamfejtes.Ber csak 0 lehet vagy esetleg null is?
- A hozzászóláshoz be kell jelentkezni
-köszi a tegnapi segítséget; az ilyen tipusú lekérdezések már mennek :D
-még egy probléma adódott (lesz még pár :( )
SELECT cikk.Megnevezes, receptura_osszetevo.Osszetevo_cikkID from cikk
inner join receptura_osszetevo on (cikk.ID=receptura_osszetevo.CikkID)
-itt a receptura_osszetevo vissza_hivatkozik a cikk-re és ezzel ilyet kapok:
Baklava tészta, 240
Baklava tészta, 81
-azt szeretném, ha ez a 240, 81, stb. névvel jelenne meg (ez cikk.ID); de nem tudom, h hogyan kell megmondani a mysql-nek, h a cikk nevét kérem :(
- A hozzászóláshoz be kell jelentkezni
Pontosan melyik mezőt szeretnéd látni? cikk.Megnevezes?
- A hozzászóláshoz be kell jelentkezni
Ha jól értem rész-egész viszonyt szeretne ugyanabból a táblából és ha tippelnem kéne, a join-nál a tábla alias hiányzik.
Innentől zumy-nak:
JOIN tábla valamiAlias ON valamiAlias.mezo=asdasdad
(esetleg tábla AS valamiAlias)
És innentől kezdve a valamiAlias-szal tudsz hivatkozni a hivatkozott táblára (itt ugye az összetevő cikk)
BlackY
--
"en is amikor bejovok dolgozni, nem egy pc-t [..] kapcsolok be, hanem a mainframe-et..." (sj)
- A hozzászóláshoz be kell jelentkezni
királyság; köszönöm szépen :)
- A hozzászóláshoz be kell jelentkezni
Ha jol ertem, amit irtal akkor:
SELECT c1.Megnevezes
, o.Osszetevo_cikkID
, c2.Megnevezes
FROM cikk c1
JOIN receptura_osszetevo o
on (cikk.ID=receptura_osszetevo.CikkID)
LEFT JOIN cikk c2
on (c2.ID= o.cikkid)
- A hozzászóláshoz be kell jelentkezni