Aktív témák
-
shev7
veterán
igen, a legtobb db szoftver kioptimalizalja a lekerdezest. Siman eszreveszi, hogy ha a where-ben olyan feltetel van aminek igazandibol join-ban lenne a helye. De mint mondtuk koran sem tokeletes. Komolyabb lekerdezesnel eltevedhet az optimalizalo. Nem art hozzaszokni a JOIN hasznalatahoz, kesobb jol johet.
-
shev7
veterán
nem, az on-ba csak tablakapcsolathoz valo feltetelt tegyel, a where-t meg hagyd meg amire valo, talalatok szuresere. Szoval igen, azokat oda kell tenni.
Nem azt mondom, hogy ne hasznalj where-t. Nincs azzal semmi baj, csak hasznald arra amire valo, mert ahogy mar korabban mondtuk nem biztos, hogy a db engine mindent ki tud optimalizalni, nem art ha segitesz neki.
-
shev7
veterán
a sorrend teljesen mindegy. Elindulsz egy tablabol, es hozzajoinolod a tobbit. Gyakorlatilag mindig ket tablad van. Az elso join-nal ez egyertelmu. A masodikanal az egyik tablad az elozo lepesben osszejoinolt ket tablad lesz, a masik meg amit eppen hozzajoinolsz. az ON-ba azt irod amit egyebkent a whereben is irnal. A wherebe meg marad a tenyleges feltetel, jelen esetben a datumok osszehasonlitasa...
Az hogy mi kell neked, majd beallitod a join-ok megfelelo left join vagy right joinra cserelesevel:
Pelda harom tablara
FROM tema t JOIN megosztas m ON t.tema_id = m.tema_id
JOIN user u ON u.user_id = m.user_idHa valamire meg akarod engedni, hogy ures legyen, akkor hasznalod a LEFT vagy RIGHT-ot. Ertelem szeruen, ha a JOIN bal oldalan allo halmazbol azokat is meg akarod jeleniteni amihez nincs kapcsolodo elem, akkor LEFT kulonben RIGHT. De elmagyarazni ezt sokkal nehezebb, mint ha leulsz es kiprobalod. Egyszer kell megerteni
-
cucka
addikt
Először is: ez a kérdés miért nem fért el a mysql topikban?
Másodszor: ha kettőnél több táblát join-olsz, akkor azt felfoghatod úgy is, mint ha kettesével végeznéd a join-okat. Tehát az első kettőt összekapcsolod, ennek az eredményét a harmadikkal, ennek az eredményét a negyedikkel, stb.
A vesszővel felsorolt táblanevek gyakorlatilag megfelelnek annak, ha a táblák Déscartes szorzatát vennéd, tehát erősen ellenjavallott a használatuk. Ha például 3, egyenként 200 soros táblát szorzol össze így, akkor az eredménynek 8 millió sora lesz, tehát rossz esetben ennyi sor között fognak keresgélni a where feltételeid. (rossz eset alatt értsd azt, ha a MySQL nem optimalizálja ki a sorrendet. Általában sikerül neki, de bonyolult lekérdezéseknél előfordul, hogy be kell neki segíteni
)
-
shev7
veterán
ha join-t akarsz hasznalni, akkor miert nem azt hasznalsz es miert a where-ben kapcsolod ossze a tablakat?
pl
FROM tema t JOIN megosztas m ON t.tema_id = m.tema_id
Ha azt akarod hogy olyan temak is szerepeljenek amikhet nincs megosztas akkor LEFT JOIN. Ha forditva, olyan megosztasok is szerepeljenek amikhez nincs tema akkor RIGHT. Es ajanlatos a tablak osszekapcsoladahoz mindih JOIN-t hasznalni a WHERE feltetelek helyett.
Aktív témák
Hirdetés
- Milyen routert?
- sziku69: Szólánc.
- Luck Dragon: Asszociációs játék. :)
- sziku69: Fűzzük össze a szavakat :)
- Kertészet, mezőgazdaság topik
- Házimozi belépő szinten
- Filmvilág
- Xiaomi 15 - kicsi telefon nagy energiával
- AMD Ryzen 9 / 7 / 5 7***(X) "Zen 4" (AM5)
- Google Chromecast topic
- További aktív témák...
- Ohh Lenovo ThinkPad P15 G2 Tervező Vágó Laptop -75% 15,6" i5-11500H 32/1TB RTX A2000 4GB /1 Millió/
- UHH! HP EliteBook 850 G8 Fémházas Multimédiás Laptop 15,6" -40% i7-1165G7 16/512 Iris Xe FHD EU-HUN
- IBM PS/1 2168-552 486SX-25
- ASUS ROG Strix RTX 2080 Ti OC 11GB
- Acer Swift 3 (SF314 54) i5 / 8GB RAM / SSD / FullHD / kiváló állapotban!
- BESZÁMÍTÁS! LG 38GN950P-B 160Hz QHD+ IPS 1ms monitor garanciával hibátlan működéssel
- LG 27GR95UM - 27" MiniLED - UHD 4K - 160Hz 1ms - NVIDIA G-Sync - FreeSync Premium PRO - HDR 1000
- LG 27UL550-W - 27" IPS / 3840x2160 4K / 60Hz 5ms / HDR10 / AMD FreeSync
- OLCSÓBB!!! több EIZO EV2456 FlexScan 24" 1920x1200 16:10 IPS fekete több jelenlegi ár: 170.000.-!!!
- Jogtiszta Microsoft Windows / Office / Stb.
Állásajánlatok
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest