Hirdetés

2024. május 1., szerda

Gyorskeresés

Útvonal

Fórumok  »  Szoftverfejlesztés  »  SQL kérdések (kiemelt téma)

Hozzászólások

(#1651) bpx válasza Jim-Y (#1650) üzenetére


bpx
őstag

ez egy sima outer join + NULL helyettesites (coalesce ha mysql)

select a.id, coalesce(b.int_value, 0)
from a
left join b on a.id = b.id;

egyebkent a (+) is outer joint jelent, csak a mysql nem ismeri

[ Szerkesztve ]

(#1652) sztanozs válasza Jim-Y (#1650) üzenetére


sztanozs
veterán

Amúgy biztos, hogy csak 1:1 kapcsolat van köztük? Mert ha nem, akkor több, mint 15.000 sorod lesz...

JOGI NYILATKOZAT: A bejegyzéseim és hozzászólásaim a személyes véleményemet tükrözik; ezek nem tekinthetők a munkáltatóm hivatalos állásfoglalásának...

(#1653) Jim-Y


Jim-Y
veterán

Köszönöm a válaszokat, most már nem tudom kipróbálni itthonról, de majd írok ha sikerült. üdv

(#1654) pittbaba válasza modder (#1636) üzenetére


pittbaba
aktív tag

Köszi mindenkinek az indexelés miatti nyaggatást, végig azt szúrtam el, tiszta lappal újra kezdtem, indexelve, végre tök gyorsan lefutnak a lekérdezések! :R :R

Kaptam a GTFS fórumon egy okosságot, arra a kérdésemre a választ, hogyan lehet kiszedni a GTFS formátumból azt, hogy egy megállón milyen járatok haladnak át (Az összes járat összes megállóját), megosztom veletek:
create table rstops as
select route_id, direction_id, a.stop_id, stop_name from
(select distinct route_id, direction_id, stop_id from stop_times as st, trips as t where st.trip_id=t.trip_id)
as a, stops as b where a.stop_id=b.stop_id order by 1,2;

PH Konfigom: Gigabyte GA-H97M-D3H, i7 4790K,GTX 960, Seasonic SS-620GM

(#1655) modder válasza pittbaba (#1654) üzenetére


modder
aktív tag

nincs mit, és androidon is gyorsabb már? :P

(#1656) pittbaba válasza modder (#1655) üzenetére


pittbaba
aktív tag

Az most fog eldőlni, majd reportolom. Egyébként ha nem is lesz gyorsabb, de legalább létre tudtam hozni egy jóval kisebb táblát, amiben benne vannak azok az adatok amik nekem kellenek. Az indexelés segített, hogy egyáltalán bármit tudjak kezdeni az adatbázissal 10-es limit nélkül :))

Kérdés:
Indexelésnél van e különbség, melyik a helyesebb:

Új tábla hozzáadásánál KEY `stop_id` (`stop_id`),

vagy a tábla létrehozása után a CREATE INDEX trips_tripid_idx ON trips(stop_id) ?

PH Konfigom: Gigabyte GA-H97M-D3H, i7 4790K,GTX 960, Seasonic SS-620GM

(#1658) trisztan94 válasza martonx (#1632) üzenetére


trisztan94
őstag

Köszönöm :R

https://heureka-kreativ.hu

(#1659) pittbaba válasza Sk8erPeter (#1657) üzenetére


pittbaba
aktív tag

Köszi! Az angolom még mindig nem perfect, ezért bizonytalan vagyok, hiába találom meg én is ezeket, de okay. :)

PH Konfigom: Gigabyte GA-H97M-D3H, i7 4790K,GTX 960, Seasonic SS-620GM

(#1660) Sk8erPeter válasza pittbaba (#1659) üzenetére


Sk8erPeter
nagyúr

Pedig angoltudás nélkül az informatika világában elég nehéz lesz mozogni.

Sk8erPeter

(#1661) pittbaba válasza Sk8erPeter (#1660) üzenetére


pittbaba
aktív tag

Lesz? :D tizenx éve ezzel foglalkozok, és ebből élek, több szálon az rendben, nem egy valamihez értek nagyon, hanem a legtöbb igényelt munkát el tudom látni, és ennyi. Az hogy a msql legbelsőbb bugyraiban nem tudom, hogy a key, és a create index között van e időben vagy eljárásban különbség, nem okozott gondot még :)) A legtöbb programozási nyelvet angolul tanultam én, az megvan, hogy mit kell nézni, meg bambulom a példákat, és ha átírok valamit mi változik szenvedések, viszont egy-egy komolyabban megfogalmazott mondat fölött átsiklik a tekintetem, ezért jobb, ha megkérdezem, de már kezdem megbánni :U

PH Konfigom: Gigabyte GA-H97M-D3H, i7 4790K,GTX 960, Seasonic SS-620GM

(#1662) Sk8erPeter válasza pittbaba (#1661) üzenetére


Sk8erPeter
nagyúr

De nézd meg az eredeti kérdésedet, abból nem az derül ki, hogy megpróbáltál volna minimális kutatómunkát is végezni kérdés előtt. Most érted, tök más, ha úgy kérdezed, hogy ezt meg azt találtam, és az alapján így meg úgy értelmezem, szerintetek így van-e, vagy ha tényleg nem találsz valamit, akkor megírod, hogy nem sikerült erről normális infót találnod, mintha egyszerűen rábízod másra az elméleti fejtegetést, vagy a találatok belinkelését (ahogy én is tettem, segítőszándékkal), hadd töltsön csak vele időt más helyetted... :) Ezáltal vész el a dolog szakmaisága, mert onnantól kezdve nem egy dolog jobb/rosszabb megvalósíthatóságáról, lehetőségekről, ötletekről beszélgetünk, hanem szimplán olyan dologról, ami a dokumentációban is kicsi keresgélés alapján megtalálható. Az eredeti kérdésedben ezzel szemben érdekes problémát vetettél fel, kaptál is választ rá bőven.

Sk8erPeter

(#1663) pittbaba válasza Sk8erPeter (#1662) üzenetére


pittbaba
aktív tag

Sorry, úgy gondoltam, alapból feltételezitek, hogy nem kérdezek olyankor, ha legalább minimálisan nem néztem utána, de legközelebb jelzem ezt.

PH Konfigom: Gigabyte GA-H97M-D3H, i7 4790K,GTX 960, Seasonic SS-620GM

(#1664) Sk8erPeter válasza pittbaba (#1663) üzenetére


Sk8erPeter
nagyúr

Ne tőlünk kérj elnézést, hanem magadtól. ;] :DDD :DD

Sk8erPeter

(#1665) martonx válasza Sk8erPeter (#1664) üzenetére


martonx
veterán

LOL :C

Én kérek elnézést!

(#1666) Jim-Y


Jim-Y
veterán

Sziasztok

Kapok egy ilyen warningot MySQL alatt:

Data truncated for column 'VALAMI' at row 2

Egy osztás eredményét tartalmazza a VALAMI, .. ilyesmit: (A/B)*100
Jól gondolom, hogy ez azt jelenti, hogy sok tizedesjegyig számolja, de "csak" 4 tizedesjegyig írja ki? Ha igen, akkor hogy lehet a warningot kikerülni?

[ Szerkesztve ]

(#1667) Ablakos válasza Jim-Y (#1666) üzenetére


Ablakos
őstag

Kipróbálod egész számokra és ha nem jön a hiba, akkor az oszlop típusa, precisionja nem elég beletenni az eredményt. Vagy explicit truncatelsz ha nem nyúlhatsz az oszlop típusához.

[ Szerkesztve ]

(#1668) Jim-Y válasza Jim-Y (#1653) üzenetére


Jim-Y
veterán

Kozben eszembe jutott hogy igertem hogy megirom, ha sikerult megoldani. Vegul egy sima JOIN -> LEFT JOIN csere lett a megoldas. Amint ezt kicsereltem, pont ugy mukodott ahogy en azt szerettem volna:) koszonom a segitseget igy utolag is.

(#1669) pittbaba válasza Sk8erPeter (#1664) üzenetére


pittbaba
aktív tag

Elég sokszor megtörténik :W :))

PH Konfigom: Gigabyte GA-H97M-D3H, i7 4790K,GTX 960, Seasonic SS-620GM

(#1670) G.A.


G.A.
aktív tag

Üdv!

Van egy kis szenvedni valóm phpmyadminon keresztül az adatbázis feltöltéssel.
SQL-be szeretném átvinni a CSV-ben elkészített táblázatot, de ez a hiba fogad:

Érvénytelen oszlopszám a CSV bemenet 1. sorában.

Na nekem ez annyit jelent, hogy több vagy kevesebb oszlopom van valahol, ami nem igaz (csak 235535x számoltam meg).

Így igazából csak arra tudok tippelni, hogy valami baja van a táblázattal (valami hiányzik).

Ez a hibajelentés általában mire utal?

GA

(#1671) martonx válasza G.A. (#1670) üzenetére


martonx
veterán

van fejléced? Lehet azzal van valami bibi?

Én kérek elnézést!

(#1672) G.A. válasza martonx (#1671) üzenetére


G.A.
aktív tag

Üdv!

Próbáltam úgy is, hogy a mezőnevek a CSV első sorában voltam, meg úgy is hogy nélküle.(ha ez a fejléc) Úgy is, hogy ha volt, akkor a feltöltéskor hagyja azt ki. Ezek nem jöttek be. Ami talán fontos és kimaradt, hogy ezt a gépemen lévő wamp-on próbáltam. Ezért kipróbáltam egy online adatbázison is, ott meg feltöltötte. :F
Ezt nem értem....

Ha már sikerült feltöltenem lenne egy másik kérdésem.
Amit sikerült feltöltenem, azokban a magyar szöveget, ahol az ékezetes karakterek kezdődnek, onnantól levágja. Feltöltéskor az utf8-as karakterkészletet választottam, mivel a varchar-os mezők utf8_hungarian_ci-re vannak állítva. Itt mi a hiba?

A másik, hogy vannak olyan mezők ahol tizedes számok is vannak. Ha jól tudom ott a mezőt decimálra kell állítani? (értékek pl.: 18.2, 5.5, 7.5, 0.5...)

GA

(#1673) bambano válasza G.A. (#1672) üzenetére


bambano
titán

arra figyelj, hogy ha magyarra van állítva a nyelv, akkor egyes programok tizedespontot, mások tizedesvesszőt várnak el.

Egy átlagos héten négy hétfő és egy péntek van (C) Diabolis

(#1674) pvt.peter


pvt.peter
őstag

Sziasztok!

Adott egy *.sql fájl, amely 723 sorból áll, és kizárólag táblák sémáját tartalmazza, tehát "CREATE TABLE ...".
Elég nehéz átlátni, hogy melyik mező mihez kapcsolódik, elég komplex MySQL adatbázis.
A kérdésem: van-e olyan alkalmazás, amely ezek alapján a tábla sémák alapján képes vizualizálni a kapcsolatokat a táblák között? idegen kulcsok, kulcsok stb.
Tlképpen olyanra gondolok, mint amikot MS Accessben az emberke az egyszerű táblákat összehúzgálja, melyik mező lesz a kulcs, stb. és ilyenkor látszódnak szépen a táblák illetve vonallal a kapcsolatok közöttük.
Itt egy [KÉP] róla, hogy mire is gondolok.

Segítséget köszönöm,
Peti

Ez egy .50-es rombolópuska, elég szép visszarúgással.

(#1675) bpx válasza pvt.peter (#1674) üzenetére


bpx
őstag

ilyet a MySQL Workbench is tud, Reverse Engineernek hivja

[ Szerkesztve ]

(#1676) pvt.peter válasza bpx (#1675) üzenetére


pvt.peter
őstag

Köszi szépen, leszedem, megnézem mit is tud :)

Ez egy .50-es rombolópuska, elég szép visszarúgással.

(#1677) bambano válasza pvt.peter (#1674) üzenetére


bambano
titán

most az a kérdés, hogy te meg tudod-e rajzolni a kapcsolatokat vagy az, hogy a tábla séma alapján megrajzolja-e neked automatikusan a program? mert ez utóbbi lehetetlen elvárás.

Egy átlagos héten négy hétfő és egy péntek van (C) Diabolis

(#1678) pvt.peter válasza bambano (#1677) üzenetére


pvt.peter
őstag

Lehet vmit félreértettél.
Tábla sémák alapján szeretnék "rajzot".
És ezt meg is kaptam a MySQL Workbench nevezetű progitól.

Ez egy .50-es rombolópuska, elég szép visszarúgással.

(#1679) bambano válasza pvt.peter (#1678) üzenetére


bambano
titán

ragaszkodnék a gondolathoz, hogy ezt rendesen lehetetlen megcsinálni.
részeredményt kaphatsz, ha szigorú nevezéktan van a táblákban.

Egy átlagos héten négy hétfő és egy péntek van (C) Diabolis

(#1680) Lortech válasza bambano (#1679) üzenetére


Lortech
addikt

Nyilván a táblákon lévő FK-k alapján működik, nem oszlopnevek alapján.

Thank you to god for making me an atheist

(#1681) bambano válasza Lortech (#1680) üzenetére


bambano
titán

valóban, az egy fokkal jobb közelítést ad.

Egy átlagos héten négy hétfő és egy péntek van (C) Diabolis

(#1682) Sk8erPeter válasza bambano (#1681) üzenetére


Sk8erPeter
nagyúr

Minél jobb közelítést? :F

Sk8erPeter

(#1683) pvt.peter válasza bambano (#1679) üzenetére


pvt.peter
őstag

Nem értem mit mondasz.
Ez az eszköz pontosan ua adja vissza nekem ami az adott adatbázis sémája.
Minden táblával, indexel együtt stb.

Ez egy .50-es rombolópuska, elég szép visszarúgással.

(#1684) bambano válasza pvt.peter (#1683) üzenetére


bambano
titán

egyezzünk ki abban, hogy félreértettelek.
bocs.

Egy átlagos héten négy hétfő és egy péntek van (C) Diabolis

(#1685) pvt.peter válasza bambano (#1684) üzenetére


pvt.peter
őstag

semmi gond :)

Ez egy .50-es rombolópuska, elég szép visszarúgással.

(#1686) alratar


alratar
addikt

Sziasztok.

Van egy táblám három sorral, és két adattal soronként. (id [primary key], név)
A kérdés az, hogyha én törlöm a második rekordot, a harmadik id-je csökken eggyel, mintegy átvéve a második helyét?

10 féle ember van: aki ismeri a bináris számrendszert, és aki nem

(#1687) bpx válasza alratar (#1686) üzenetére


bpx
őstag

nem

(#1688) alratar válasza bpx (#1687) üzenetére


alratar
addikt

És nem is lehet megoldani ezt?

10 féle ember van: aki ismeri a bináris számrendszert, és aki nem

(#1689) bpx válasza alratar (#1688) üzenetére


bpx
őstag

de, termeszetesen meg lehet oldani, lehet after delete triggert irni
persze kerdes, hogy megeri-e 1 sor torlese eseten a legrosszabb esetben a tabla osszes tobbi sorat update-elni
(meg hogy indokolja-e ezt barmi is)

[ Szerkesztve ]

(#1690) sztanozs válasza bpx (#1689) üzenetére


sztanozs
veterán

Bocs nem neked akartam válaszolni...

alratar: Primary ID-t nem lehet "egyszerűen" módosítani, mivel roncsolja az integritást. Ha fontos, hogy növekvő és folyamatos sorrend legyen, ikább érdemes egy generált mezőt használni (vagy egyszerűen kiiratásnál beszámozni a mezőket). AZ ID mezők nem erre valók, hanem hogy az adatkapcsolatokon keresztül az integritás (mi tartozik mihez) megmaradjon.

[ Szerkesztve ]

JOGI NYILATKOZAT: A bejegyzéseim és hozzászólásaim a személyes véleményemet tükrözik; ezek nem tekinthetők a munkáltatóm hivatalos állásfoglalásának...

(#1691) Lortech válasza alratar (#1686) üzenetére


Lortech
addikt

Nem tudom pontosan mire kell, de ha csak kell egy folytonos sorszám az id alapján rendezve, akkor csinálhatsz egy ilyen viewt neki (ez Oracle-ben).

create view testv as select rank() over(order by id asc) id, nev from testt

[ Szerkesztve ]

Thank you to god for making me an atheist

(#1692) alratar válasza bpx (#1689) üzenetére


alratar
addikt

Akkor leírom, hogy miért is kellene ez.

Egy olyan adatbázist szeretnék csinálni, ahol futball játékosok neveit és adatait lehet felvinni.
És mivel, ugye a játékos állomány folyamatosan változik (eladják őket stb) így az id hosszúsága előbb-utóbb több tíz hosszúságú is lehet.
És ezt szettném kibekkélni!

10 féle ember van: aki ismeri a bináris számrendszert, és aki nem

(#1693) sztanozs válasza alratar (#1692) üzenetére


sztanozs
veterán

10 hosszúságú :Y

Az 1 000 000 000 ember - ennyi focisa nincs is a világon... ez a föld teljes lakosságának a ~15%-a

JOGI NYILATKOZAT: A bejegyzéseim és hozzászólásaim a személyes véleményemet tükrözik; ezek nem tekinthetők a munkáltatóm hivatalos állásfoglalásának...

(#1694) Sk8erPeter válasza alratar (#1692) üzenetére


Sk8erPeter
nagyúr

"az id hosszúsága előbb-utóbb több tíz hosszúságú is lehet."
http://dev.mysql.com/doc/refman/5.0/en/integer-types.html
tartományok:

signed int: -2147483648 - 2147483647
unsigned int: 0 - 4294967295

Sk8erPeter

(#1695) alratar válasza sztanozs (#1693) üzenetére


alratar
addikt

Jó, kicsit túloztam! :P

10 féle ember van: aki ismeri a bináris számrendszert, és aki nem

(#1696) Lortech válasza alratar (#1692) üzenetére


Lortech
addikt

Na és akkor mi lesz, ha már a tényleges, aktív játékosállomány is meghaladja ezt a tartományt, miután megcsináltad ezt a léptetgetést ? :D

Komolyra fordítva, az id-ket nem módosítgatjuk, főleg nem ilyen ürüggyel. Megfelelően nagy típust kell választani kulcsnak, amelybe belefér minden tervezett adat + ráhagyás.

Thank you to god for making me an atheist

(#1697) sztanozs válasza alratar (#1695) üzenetére


sztanozs
veterán

Ahogy ítam az ID mező nem erre való - tegyél be egy plusz mezőt (mondjuk legyen mez-szám) és így ha kiveszel valakit, úgy már ahelyett be tudsz állítani egy másik játékosnak egy korábban már kiadott számot...

[ Szerkesztve ]

JOGI NYILATKOZAT: A bejegyzéseim és hozzászólásaim a személyes véleményemet tükrözik; ezek nem tekinthetők a munkáltatóm hivatalos állásfoglalásának...

(#1698) alratar válasza Lortech (#1696) üzenetére


alratar
addikt

Így belegondolva igazad van, nem tudom mért bonyolítottam a dolgokat! :)

10 féle ember van: aki ismeri a bináris számrendszert, és aki nem

(#1699) pittbaba


pittbaba
aktív tag

Sziasztok! Mit rontok el?
Van a kérésemben egy feltétel exception_type <> 2, ha a kérésembe beteszem ezt a feltételt, akkor üres sorok jönnek ki, ha kikommentelem, akkor kijönnek az eredmények, olyanok is, amiknél az exception_type értéke NULL. Miért nem igaz a feltétel mégsem?

PH Konfigom: Gigabyte GA-H97M-D3H, i7 4790K,GTX 960, Seasonic SS-620GM

(#1700) Lortech válasza pittbaba (#1699) üzenetére


Lortech
addikt

A NULL speciális érték, pl. Oracle-ben nullt bármihez hasonlítod = / != -vel, egyaránt unknown eredményt ad. Null helyett érdemes lehet egy speciális, nullt szimbolizáló értéket adni a mezőnek, vagy ha az nem opció, akkor mindig IS NULL / IS NOT NULL-lal (is) vizsgálni.

Thank you to god for making me an atheist

Útvonal

Fórumok  »  Szoftverfejlesztés  »  SQL kérdések (kiemelt téma)
Copyright © 2000-2024 PROHARDVER Informatikai Kft.