Hirdetés
- iPhone topik
- One mobilszolgáltatások
- Így lehet kiszúrni, ha kamu AirPods fülest akarnak eladni neked
- Xiaomi 15T Pro - a téma nincs lezárva
- Itt a Galaxy S26 széria: az Ultra fejlődött, a másik kettő alig
- Google Pixel topik
- Amazfit Active 2 NFC - jó kör
- Android alkalmazások - szoftver kibeszélő topik
- Samsung Galaxy A54 - türelemjáték
- Samsung Galaxy S26 Ultra - fontossági sorrend
Új hozzászólás Aktív témák
-
Szmeby
tag
válasz
Micsurin
#4778
üzenetére
Nem hiszem, hogy a feladat szovegeben talalni fogsz egy kulcsszot, ami elarulja, mit hova tegyel egy lekerdezesben.
En sem ertem pontosan a problemat, de ha az a gondod, hogy nem latod a kulonbseget a
SELECT e.department_id, last_name, legkisebb
FROM employees e, (SELECT department_id, MIN(salary) legkisebb
FROM employees GROUP BY department_id) min
WHERE e.salary=min.legkisebb AND e.department_id=min.department_id;es a
SELECT e.department_id, last_name, legkisebb
FROM employees e
INNER JOIN (SELECT department_id, MIN(salary) legkisebb
FROM employees GROUP BY department_id) min ON e.department_id=min.department_id
WHERE e.salary=min.legkisebb;kozott, akkor az azert van, mert nincs kulonbseg.
En az utobbi formatumot szoktam meg es szeretem hasznalni. Az utobbi egy ujabb talalmany, a hosidokben az elobbit hasznaltak. De ez a ketfele formatum a subquerytol pont fuggetlen, sima tablakkal ugyanugy alkalmazhato mindket forma.---
Hogy subqueryt tablakent hasznalsz egy lekerdezesben es joinolgatsz, vagy a where feltetelben szursz a subquery eredmenyevel egy masik tabla egy mezojen*, szerintem ez ket annyira eltero dolog, hogy adja magat. Join-ba azert teszed, mert mondjuk a subquery-bol is szeretnel ertekeket megmutatni az eredmenyhalmazban. Vagy mert tobb mezore is szurnel, es join-nal atlathatobb a lekerdezes, vagy mert a DB jobban optimalizalja igy a lekerdezest, mint ugy. Probalgasd, gyakorolj, idovel raerzel!
* Mondjuk valami ilyesmi:
SELECT e.department_id, last_name
FROM employees e
WHERE e.salary=(SELECT MIN(salary) FROM employees min WHERE e.department_id=min.department_id);---
Vagy ha a subqueryt a szelekcioba rakod, hat, meg nem mondom, mikor van ennek haszna. Annyira nem vagyok expert, hogy ezt most igy hirtelen meg tudjam fogalmazni, es sose filozofalgattam azon, hogy milyen kulcsszavak milyen strukturaltsagot implikalnanak. Szelekcioba nagyon ritkan tettem subselectet, mert borzaszto rossz hatasfoku volt.
Szerintem egy jo okolszabaly, hogy ird meg join-nal a lekerdezest, es ha azt latod, hogy a join felesleges, mert mondjuk a kapcsolt tablabol semmit nem mutatsz meg az eredmenyhalmazban, akkor kis atalakitassal talalj neki egy szebb / jobb formatumot. Erdemes kiprobalni, hogy mennyire hatekonyan hajtja vegre a DB az egyik es a masik valtozatot. Sok gyakorlas utan pedig mar raerzel majd, hogy melyik megoldas optimalis, es eleve ugy kezdesz hozza. Meg az exists egy olyan okossag, ami egesz jo hatekonysagot mutat, annak a probalgatasat is ajanlom.
Ha elkepzeled, hogy melyik tabla vagy subquery hany sorral ter vissza, es az alapjan probalod beloni, hogy a DB vajon egyik-masik konstrukcioban mennyire izzadna meg, akkor az talan segit eldonteni, hogy merre erdemes elindulni.
Na de en is kivancsi vagyok egy hozzaerto gondolataira, hatha van egyszerubb mod.
Új hozzászólás Aktív témák
- Kerékpárosok, bringások ide!
- AMD K6-III, és minden ami RETRO - Oldschool tuning
- Audi, Cupra, Seat, Skoda, Volkswagen topik
- Többszörösére növeli az üzemidőt az LG 1 Hz-es LCD panelje
- Le Mans Ultimate
- OLED TV topic
- iPhone topik
- Mesterséges intelligencia topik
- exHWSW - Értünk mindenhez IS
- Milyen joysticket vegyek?
- További aktív témák...
- BESZÁMÍTÁS! GIGABYTE B650E R9 7900X 64GB DDR5 1TB SSD RTX 5080 16GB NZXT H9 Flow White Corsair 850W
- BESZÁMÍTÁS! MSI X570 R5 5600X 32GB DDR4 512GB SSD RX 6800 16GB Kolink Unity Lateral ARG 750W
- BESZÁMÍTÁS! MSI B650 R5 9600X 32GB DDR5 1TB SSD RX 9070XT 16GB Lian Li LANCOOL II Mesh C RGB 750W
- BESZÁMÍTÁS! Gigabyte B450M R5 3600 16GB DDR4 512GB SSD GTX 1070 8GB Zalman S3 Chieftec 700W
- BESZÁMÍTÁS! Gigabyte B360M i5 8400 16GB DDR4 512GB SSD RTX 2070 8GB RAMPAGE Shiva Adata 600W
- 27% - ÚJ GAMER PC! Ryzen 9800X3D / RTX 5090 / 48GB 6000MHz / 2TB NVMe / 1250W Gold! BeszámítOK
- Azonnali készpénzes nVidia RTX 4000 sorozat videokártya felvásárlás személyesen / csomagküldéssel
- Behringer B-CONTROL BCF2000 USB/MIDI kontroller
- Honor Magic7 Lite / 8/256GB / Kártyafüggetlen / 12Hó Garancia
- Xiaomi Redmi 13 128GB, Kártyafüggetlen, 1 Év Garanciával
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest

