Új hozzászólás Aktív témák
-
Imrege
csendes tag
Van egy SQL problémám:
Van két tábla. Az egyk neve legyen A, a másik B. ''A'' tábla tartalma: KVOD, TKOD, DATUM, MENNY, stb. ''B'' tartalma: VKOD, TKOD. A mezőnevek egyezősége nem véletlen.
A feladat: Töröljük ki ''A'' táblából azokat a sorokat, amelyek benne vannak a ''B'' táblában! (természetesen VKOD és TKOD is meg kell, hogy egyezzen)
Vajon hogy néz ki az SQL parancs?
[Szerkesztve] -
Tersius
tag
Halkan mondom, mert lehet, hogy hulyeseg (bar igy tanitottak nekem, azt hiszem):
DELETE FROM A
WHERE A.VKOD = B.VKOD
AND A.TKOD = B.TKOD
A B.VKOD helyett egy alselectet csinalj.
..
WHERE VKOD=(SELECT VKOD FROM B)
..
Ez csak egy tipp, en igy probalnam megcsinalni (oracle 9i alatt, ha ez szamit)''My curvy sword at your neck, you unclean son of a dog of the female persuasion!''
-
chop
őstag
bizony-bizony, buta accessnek alselect kell..mysqlben nem..access(officeban) 100 rongy korul van, mysql ingyenes..kesz
(mielott vki lehurrogna: tudom, az access mezei felhasznaloknak keszult, de konyorgom, mi a szarnak kellett jet sqlt bele rakni, miert nem volt jo a szabvany...? ejnye-ejnye, billy boy..) -
RAM
őstag
Sziasztok!
Segítséget szeretnék kérni egy primitív (egy soros megoldásokkal) feladatsor megoldásához.
(Esetleg kérdedznék még programozásból lámer kérdéseket...)
Ki lenne ily kedves segítőkész?
[Szerkesztve]Csak tisztán
-
sequator
senior tag
SOS kellene help, remélem tud valaki segíteni.
win2ksp4+sql2ksp3 éppen query analyserben írtam egy selectet, és elment az áram, de a querym nem volt elmentve, honnan lehet esetleg előbányászi a query tartalmát?
azt remélem, hogy valahol csak magvan valami tmp fájlban vagy hasonlóban, nagyon kellen, mert egész napi melómat újra kellen kezdenem
Sautiasequator
-
sequator
senior tag
első up
Sautiasequator
-
sequator
senior tag
második up, ha valaki tud segítsen, mert még QA-t sem merek indítani, nehogy felülírja az esetleg létező untitled.sql-t
Sautiasequator
-
OddMan
őstag
Egy kicsit off...
Tanultam a relációs adatbázisokról. Megtanultam a normálformákat és ismerem az egyed-kapcsolat modellt is. A kapcsolatokról is tanultam és azok ábrázolásáról az egyed-kapcsolat modellben. A kérdésem, hogy hogyan kezdjek el megtervezni egy egyszerűbb adatbázist? Szal egyed-kapcsolat modell segítségével el akarok jutni a 3nf-ig és a kapcsolatokat is ábrázolni akarom.
Egy olyan logikai tervig szeretnék eljutni, amiből már könnyedén lehet bevinni a dolgokat egy relációs adatbáziskezelőbe.
[Szerkesztve]''A szíved szabad! Légy bátor és kövesd!''
-
OddMan
őstag
-
rollingrock
csendes tag
Én sahosem értettem igazán ezeket a normálformás alakokat ezért mindig ''ösztönösen'' úgy készítettem el az adatbázis felépítést ahogy szerintem jó. Aztán kiderült néha hogy így teljesen mégsem jó...
-
tildy
nagyúr
Huh tudna valaki segíteni az alábbiakban?
Mi az indexelés?
Mire valók a kulcsok?
Hogy lehet két táblát ''összemergelni''?
mik a DDL, DML, DCL?
Ja és pár relációt is mondajtok már
sürgős!!!
[Szerkesztve]"Tartsd magad távol azoktól, akik le akarják törni az ambíciódat! A "kis" emberek mindig ezt teszik, de a nagyok éreztetik veled, hogy te is naggyá válhatsz" - Mark Twain
-
VladimirR
nagyúr
angolul jo? mert akkor index-rol itt talaltam egy leirast => Bővebben: link
-
tildy
nagyúr
azt tudom, de az nekem pont vidéken - Jászalsószentgyörgyön - van én meg pesten vagyok.
Szal otthon van oracle könyvem..."Tartsd magad távol azoktól, akik le akarják törni az ambíciódat! A "kis" emberek mindig ezt teszik, de a nagyok éreztetik veled, hogy te is naggyá válhatsz" - Mark Twain
-
Nedudgi
aktív tag
Indexelés: Alapvetően könnyebbé teszi a keresést mert egy mező szerint sorbarendezi a rekordok azonosítóit (kb).
Kulcsok: azonosítják a rekordokat. Összekapcsolják a táblákat egy táblába idegen kulcs, egy másikban (a kapcsolt táblában elsődleges)
Mergelés, utána kéne néznem mert még nem csináltam.
DDL: Data Definition Language
DML: Data Manipulation Language (SQL az 2in 1)
Most látom hogy már egy napos a hozzászólásod, ha kell még segítség vegyél fe ICQ-ra. Segítek szívesen.
Relációk PL:
ADOSOK(azonosito, nev,.....)
KEZESEK(kezes_azon, nev, ados_azonosito....)
KEZESEK.ados_azonosito (idegen kulcs) -> ADOSOK.azonosito (elsodleges kulcs)
Remélem érthető lettIt took the computational power of three Commodore 64s to fly to the moon. It takes a 486 to run Windows 95. Something is wrong here. -- SC sig file UBUNTU - KDE - Rock'n'Roll
-
guest666
aktív tag
Szevasztok, egy SQL lekérdezésre lenne szükségem:
A CIKK tábla tartalma CIKKSZAM, CIKKNEV, CIKKCSOPORT, EGYSEGAR. Feladat: Cikkcsoportonként melyik termék a legolcsóbb ?
Köszi. -
Goose-T
veterán
Ja, akkor valahogy így próbálkozz:
select CIKK.CIKKNEV, MINARAK.AR from
(select min(EGYSEGAR) as AR, CIKKCSOPORT
from CIKK group by CIKKCSOPORT)
as MINARAK
join CIKK on MINARAK.AR = CIKK.EGYSEGAR
Access-el nem igazán lehet ilyesmit összekattintgatni, vagy nagyon nehézkes lenne.
Már 3x kellett átszerkesztenem, hogy rendesen látszódjon...
[Szerkesztve]Eladó gityóim: https://tinyurl.com/37n9ydfa *** Jó zene: https://tinyurl.com/uam2as25 *** Reverb boltom: https://tinyurl.com/4nt8u8vn
-
sky77
aktív tag
Szerintem az is fontos lenne, hogy abból a cikkcsoportból selectálja ki a legalacsonyabb árnak megfelelőt, amelyik cikkcsoportnak a legalacsonyabb áráról van szó, pl így:
select CIKK.CIKKNEV, MINARAK.AR from
(select min(EGYSEGAR) as AR, CIKKCSOPORT
from CIKK group by CIKKCSOPORT)
as MINARAK
join CIKK on MINARAK.AR = CIKK.EGYSEGAR
and CIKK.CIKKCSOPORT = MINARAK.CIKKCSOPORT''Emberek, vessetek a mókusok elé!''
-
guest666
aktív tag
THX !
Elég komoly lettpedig milyen egyszerűnek tűnt...
-
jeszi
tag
Sziasztok!
(Gyenge vagyok sql-ben)
Van egy lekérdezés egy Access adatbázisban:
SELECT O.ORVOS_ID, O.VEZNEV1, O.KERNEV1_1, O.KERNEV1_2, I.INTEZMENY_NEV, I.IRSZ, I.TELEPULES, I.CIM, OIS.TELEFON1, OIS.TELEFON2, OIS.MELLEK, ORR.MEGYE, ORR.ORSZAGRESZ
FROM ORVOS AS O, INTEZMENY AS I, ORVOS_INT_SW AS OIS, ORVOS_SZAKVIZSGA_SW AS OSS, SZAKVIZSGA AS SZ, TELEPULES AS T, ORSZAGRESZ AS ORR
WHERE O.ORVOS_ID=OIS.ORVOS_ID And OIS.INTEZMENY_ID=I.INTEZMENY_ID And O.ORVOS_ID=OSS.ORVOS_ID And OSS.SZAKVIZSGA_ID=SZ.SZAKVIZSGA_ID And I.TELEPULES=T.TEL_NEV And T.MEGYE=ORR.MEGYE And SZ.SZAKVIZSGA=PSZAKVIZSGA AND O.ACTIVE = 1
AND O.ORVOS_ID NOT IN
(SELECT E.ORVOS_ID FROM EREDMENY E
WHERE E.EREDMENY_TIP_ID IN (11, 12, 13))
ORDER BY ORR.ORSZAGRESZ, ORR.MEGYE, I.TELEPULES, I.CIM;
Ez borzasztó lassú, valahogy optimalizálni szeretném ezt a lekérdezést (vagy az adatbázist).
Tudna valaki segíteni? Az adatbázisról készítettem egy képet (táblák, kapcsolatok), azt el tudom küldeni e-mail-ben.Nem félek a haláltól, majdcsak túlélem valahogy!
-
sky77
aktív tag
Ezt így hirtelen kicsit nehéz átlátni... Talán jobb lenne előről kezdeni a lekérdezést, úgy, hogy elmondod, mi a feladat (milyen adatokat szeretnél visszakapni) és ehhez milyen táblák (ill. mezők) állnak rendelkezésre. Biztosan lehetne ezt is optimalizálni, de valahogy nem visz rá a lélek, hogy átbogarásszam.
''Emberek, vessetek a mókusok elé!''
-
sky77
aktív tag
Küldtem választ, de ide is leírom, biztos, ami biztos.
Szerintem, ha mondjuk left join-nal egy egyértelmű megfeleltetést tudsz felállítani a táblák között, kisebb adathalmazból fog dolgozni a select, így van rá esély, hogy gyorsabb lesz, ugyanisselect * from a,b
visszaadja az összes olyan elemet, ami mind a-nak, mind b-nek halmaza, úgy, hogy b összes eleméhe rendeli a összes elemét. Így aztán a where feltétel egy adott esetben akár óriási adathalmazból választja ki azokat a sorokat, akik a kitételnek megfelelnek.
Ha pl így oldod meg:select * from a
left join b on b.x=a.x
tehát már az összekapcsolásban szerepel a ''where feltétel'', eleve kisebb adathalmazt kapsz, amit nem is kell tovább szűkíteni.
Próbáld meg így, hátha segít valamicskét. Addig is nézegetem a kódot, ha időm engedi.
Szerk.: Lehet, hogy célszerű lenne, ha kevesebb adatot hozna a select, így nem kéne annyi táblát összekapcsolni, s a bővebb információk csak akkor kerülnének lekérdezésre, ha a felhasználó úgy kívánja (pl. gombnyomásra). Már ha a feladat engedi, persze.
[Szerkesztve]''Emberek, vessetek a mókusok elé!''
-
sky77
aktív tag
Így gyorsabb? Lefut egyáltalán? Én sajna nem tudom kipróbálni.
SELECT O.ORVOS_ID, O.VEZNEV1, O.KERNEV1_1, O.KERNEV1_2,
I.INTEZMENY_NEV, I.IRSZ, I.TELEPULES, I.CIM,
OIS.TELEFON1, OIS.TELEFON2, OIS.MELLEK,
ORR.MEGYE, ORR.ORSZAGRESZ
FROM ORVOS AS O
left join orvos_int_sw as ois on ois.orvos_id=o.orvos_id
left join intezmeny as i on i.intezmeny_id=ois.intezmeny_id
left join telepules as t on t.tel_nev=i.telepules
left join orszagresz as orr on orr.megye=t.megye
left join orvos_szakvizsga_sw as oss on oss.orvos_id=o.orvos_id
left join szakvizsga as sz on sz.szakvizsga_id=oss.szakvizsga_id
WHERE SZ.SZAKVIZSGA=PSZAKVIZSGA and O.ACTIVE = 1
AND O.ORVOS_ID NOT IN
(SELECT ORVOS_ID FROM EREDMENY
WHERE EREDMENY_TIP_ID IN (11, 12, 13))
ORDER BY ORR.ORSZAGRESZ, ORR.MEGYE, I.TELEPULES, I.CIM;
Talán egy-két táblát is össze lehetne vonni, első ránézésre nem teljesen tűnt indokoltnak, hogy külön táblában vannak adatok, persze lehet hogy tévedek.
Pl.:
orvos_szakvizsga_sw --> orvos
orszagresz --> telepules
[Szerkesztve]
[Szerkesztve]''Emberek, vessetek a mókusok elé!''
-
jeszi
tag
Az egész orvos adatbázist átraktam Access-ből MySql-be. Az átkonvertálást DBTools Manager Professional programmal végeztem.
Miért van az, hogy ugyan az a lekérdezés Access-ben kb. 5 másodpert, MySql-ben meg 15-20 perc?Nem félek a haláltól, majdcsak túlélem valahogy!
-
sky77
aktív tag
Mysql-hez sajna a legkevésbé sem értek, viszont errefelé érdemes lehet körülnézni: Bővebben: link
Ezen belül is talán ez a legmegfelelőbb topic: Bővebben: link
Remélem tudnak segíteni.''Emberek, vessetek a mókusok elé!''
Új hozzászólás Aktív témák
- Nikon Z MILC fényképezőgépcsalád
- Wise (ex-TransferWise)
- Diablo IV
- OLED TV topic
- chopin42: A (netes) társkeresés labirintusában #3:avagy... :(
- Xiaomi 12 - az izmos 12
- exHWSW - Értünk mindenhez IS
- Amlogic S905, S912 processzoros készülékek
- PlayStation 5
- Bambu Lab X1 és P1P tulajok
- További aktív témák...
- Seasonic G12 GC-650W 4 ev garival
- Chieftec Iarena GPA-600s 600W 80+ teljesítményű ATX tápegység
- Samsung Galaxy S23 Ultra 5G 512GB, 3 év garancia, újszerű, 3 év biztosítás, ajándék gyári tok!!!
- Apple MacBook Pro 15" 2017 i7 16GB RAM 1TB SSD FULL CTO
- Microsoft Xbox Series S 512GB SSD Játékkonzol + Vezeték nélküli kontroller (Shock Blue)
Állásajánlatok
Cég: KIFÜ
Város: Budapest