Hirdetés
- Luck Dragon: Asszociációs játék. :)
- Graphics: Telefonvásárlási kálváriám....avagy clickbait cím: Horror a hardveraprón
- sziku69: Szólánc.
- sziku69: Fűzzük össze a szavakat :)
- Szellem.: ATK Blazing Sky X1 V2 Extreme 2.0. Tényleg 2.0-a!
- D1Rect: Nagy "hülyétkapokazapróktól" topik
- Ketogén étrend
- f(x)=exp(x): A laposföld elmebaj: Vissza a jövőbe!
- gerner1
- MasterDeeJay: Egy nem átlagos Asus videókártya (GTX950M 2GB GDDR3)
Új hozzászólás Aktív témák
-
Goose-T
veterán
A WHERE feltételbe rakott SELECT nagyon lelassítja a lekérdezést, mivel minden egyes sornál lefuttatja a feltételben szereplő SELECT utasítást. Ha az a.id és a b.id megfeleltethető egymásnak, akkor egy LEFT JOIN-os lekérdezéssel közösíteni kell a két táblát majd egy külső SELECT-tel kiválogatni a megfelelő rekordokat, valahogy így:
SELECT * FROM (SELECT a.id as aid, b.id as bid FROM
a LEFT JOIN b ON a.id = b.id) WHERE bid IS NULL
[Szerkesztve] -
L3zl13
nagyúr
Első körben talán valahogy így...
Persze lehet, hogy van jobb megoldás.
SELECT * FROM brick, [SELECT CONCAT(nev, region) as nev_reg FROM brick GROUP BY nev_reg having count(*) = 1]. AS [nev_reg] WHERE nev_reg = CONCAT(nev, region);
Jah, CONCAT MySQL függvény. Nem tudom te mit használsz...
[Szerkesztve] -
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. -
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] -
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] -
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.
Új hozzászólás Aktív témák
Hirdetés
- nVIDIA GeForce GT240M 1024MB laptop videókártya
- minigép/ i5 6500/ 16GB DDR4/ 256GB SSD/ HP800G3 35W/ számla/ garancia
- iKing.Hu - Apple MacBook Pro 14 M3 Pro (2023) 18GB/500GB SSD karcmentes 100% akku 23 ciklus
- iKing.Hu - Apple MacBook Pro 14 M1 Pro (2021) 16GB/500GB szép állapot 90% akku 265 ciklus
- AMD Ryzen 9 9950X3D2 4.30GHz
- Microsoft: Windows / Office / Server / Stb.
- Lenovo Legion 9 16" 3.2K Mini LED Laptop! i9-13980HX / RTX 4090 / 32GB DDR5 / 2TB NVMe! BeszámítOK
- Lenovo ThinkPad T14s Gen 3 i5-1245U 14" FHD+ 16GB 256GB 1 év teljeskörű garancia
- iPhone 15 Pro Max 256GB 100% (1év Garancia)- ÚJ EREDETI AKKUMULÁTOR - AKCIÓ
- Samsung Galaxy S24 - Titanium Black - 8/256GB
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest

