SQL kérdések - Szoftverfejlesztés fórum

üzenetek

hozzászólások


_Lord_B_
(tag)

SziaSztok,
mi lehet akkor ha a táblákat amikor lekérdezem az ékezet helyén csak ??? jelenik meg FF és IE alatt is, de csak ha a En irom a PHP kodot, ha PHP adminnal kérdezem le miden ok... PLS help!


#65304576
(csendes tag)

Más karakterkészlettel megy ki a weblap. Nézd meg, hogy a PHP Admin hogyan küldi (jobbklikk a lapon - properties) és ugyanolyan kódkészlettel generáld te is a header-t.


Biaggio
(őstag)
Blog

Adott egy parancs, ami kilistázza azokat a felhasználókat, akik szerepelnek mindkét adatbázisban, azonosítószám alapján összevetve:

SELECT e107_user_extended.* FROM e107_user, e107_user_extended
WHERE e107_user_extended.user_extended_id = e107_user.user_id

A kérdés egyszerű: hogyan lehet ezt úgy átírni, hogy azokat listázza ki, akik ezen felül szerepelnek az e107_user_extended táblában (de nem szerepelnek az e107_user-ben) ? :)


Lortech
(addikt)

Ja jól értelmezlek, akkor right joinnal kéne összekapcsolnöd a két táblát.


EEdem_Dtx
(csendes tag)

valaki meg tudná mondani, hogy listázhatom ki, egy tábla által tartalmazott oszlopok neveit?

köszi


Lortech
(addikt)

show columns from táblanév vagy desc táblanév ?

szerk: ez mysql.

[ Szerkesztve ]


EEdem_Dtx
(csendes tag)

THX
Oracle-ben kellene :-)


Lortech
(addikt)

select column_name from dba_tab_columns where table_name = 'táblanév';


EEdem_Dtx
(csendes tag)

ez már sokkal jobban tetszik neki :)
THX


Biaggio
(őstag)
Blog

Úgy nézem, valami ilyesmi lesz jó :)

SELECT e107_user_extended. *
FROM e107_user_extended
LEFT JOIN e107_user ON e107_user_extended.user_extended_id = e107_user.user_id
WHERE e107_user.user_id IS NULL
ORDER BY `e107_user_extended`.`user_extended_id` ASC


Lortech
(addikt)

Ha nem írtad volna félreérthetően.. : azokat listázza ki, akik ezen felül szerepelnek
Pici tipp: a hosszú táblaneveket én el szoktam eljelölni, pl.
SELECT ux.* FROM e107_user_extended ux
LEFT JOIN e107_user u ON ux.user_extended_id = u.user_id és így tovább.


Biaggio
(őstag)
Blog

Köszi :)) A te javaslatodra kezdtem megnézni a JOIN témakört, mert korábban nem ismertem, és elnézést, ha félreérthető volt :B


EEdem_Dtx
(csendes tag)

...szépen működik is, a gond most az, hogy én nagylelkűen felruháztam scott/tiger felhasználómat, minden joggal, így látja is a 'dba_tab_columns' táblát/nézetet, de más rendszeren, egy mezei scott-nak, nincs joga hozzáférni :S. Létezik másik tábla is, amiből le lehet kérdezni az oszlopokat?
vagy ha nem, hát azzal fog kezdődni a kód, hogy beállítom a jogosultságot... csak nem igazán elegáns.

köszönöm, ha valaki tudna segíteni :)


imibogyo
(veterán)
Blog

Sziasztok !!
Nagy kaksiban vagyok, kaptam egy feladatot az új számtek tanáromtól, hogy majd erre adja meg a félévi jegyemet (MySQL), de mi még nem is tanultunk ilyet, de hiába mondjuk neki, azt állítja, hogy a régi tanárunk azt mindta neki, hogy igen tanultunk SQL-t... :(( :((

Na az a feladatom, hogy csináljak egy könyves táblázatot, de úgy hogy ne legyen benne felesleges redundancia (több táblában legyenek az adatok, /könyv címe, kiadás éve/ /író/ /műfaj/, és ha jól értem valahogy úgy akarja mint accesben, hogy az adatok ezekből a táblákból legyenek áthozva egy közös táblába :F , hogy ne legyen például a "dráma" vagy a "szerző" 200-szor letárolva, hanem csak egyszer (vagy valami ilyesmi)

Ha tudtok segíteni ....


Lortech
(addikt)

Nem tudok más megoldást sajna.

imibogyo:
Leegyszerűsített séma az alapkoncepció megértéséhez:
konyv (id, cim, szerzo_id, mufaj_id)
szerzo(id, nev)
mufaj(id, nev)

konyv tábla egy sora:
1,Közöny,1,1
2,Bukás,1,1

szerzo tábla egy sora:
1,Albert Camus

mufaj tábla egy sora:
1, regeny

Ha a lekérdezésben összekapcsolod a táblákat úgy, hogy:
select k.cim, sz.nev, m.nev from konyv k
join szerzo sz on k.szerzo_id = sz.id
join mufaj m on k.mufaj_id = m.id
- akkor megkapod eredménynek, hogy:
Közöny, Albert Camus, regény
Bukás, Albert Camus, regény

A címet és nevet nem érdemes szétbontani értelemszerűen, mivel ez egyedi. Kiadás évét sincs sok értelme külön kategóriára bontani szvsz.
De pl. a kiadót érdemes.

[ Szerkesztve ]


imibogyo
(veterán)
Blog

Köszi.. :R :R
Pont így csináltam meg, azóta ugyanis egy pár órát rádobtam a cuccra. A táblák kész vannak, csak azt a JOIN-os lekérdezést nem értem, amit írtál, ha le tudnád írni részletesen azt megköszönném.
Tábláim:

i__ro (iro_id, iro)
k__onyv (cim_id, cim, iro_id, mufaj_id)
m__faj (mufaj_id, mufaj)

Előre is köszi. :R

Ja még egy kérdés, ezt a JOIN dolgot csak lekérdezésnél lehet megcsinálni ?? nem tudom összekapcsolni őket alapból, mint pl. Accesben ???

Vedd semmisnek, most látom, hogy elég részletesen írtad le, csak azt nem értem, hogy mi az a "k" "sz" "m" (az lesz a rövidítése, vagy mi :F )

[ Szerkesztve ]


imibogyo
(veterán)
Blog

Na úgy írtam be, hogy

SELECT k__onyv.cim, i__ro.iro, m__ufaj.mufaj FROM k__onyv k JOIN i__ro i ON k__onyv.iro_id=iro_id JOIN m__ufaj m ON k__onyv.mufaj_id=mufaj_id;

És így nem jó azt mondja

Syntax error near: 'ON k__onyv.iro_id=iro_id JOIN m__ufaj m ON k__onyv.mufaj_id=mufaj_id' at line 1

:O


Lortech
(addikt)

Ja még egy kérdés, ezt a JOIN dolgot csak lekérdezésnél lehet megcsinálni ?? nem tudom összekapcsolni őket alapból, mint pl. Accesben ???
Mi másnál akarod megcsinálni? Az sql és az access két külön fogalom. :)

A k, sz, m a könyv, szerző és műfaj rövidítése. Amint látod, ott van, hogy konyv k, így k-val tudsz hivatkozni a könyvre, nem csak ezután, hanem előtte is, pl a select k.cim.

SELECT k__onyv.cim, i__ro.iro, m__ufaj.mufaj FROM k__onyv k JOIN i__ro i ON k__onyv.iro_id=iro_id JOIN m__ufaj m ON k__onyv.mufaj_id=mufaj_id;
Persze, hogy nem jó, mivel a "k__onyv.iro_id=iro_id" résznél nem adod meg, hogy az iro_id melyik táblához tartozik. Tehát k__onyv.iro_id=i__ro.iro_id, és a műfajnál is ez.


imibogyo
(veterán)
Blog

Na megint én.......
Nézdd meg légyszíves, mit csinálok rosszul, a hiba biztos az én készülékemben van.....
Kép

Én arra gondoltam, hogy ha megnézed a képen a mufaj_id és az iro_id a k__onyv táblában 0 defaultosak, a saját táblájukban meg nincs ott semmi ez nem lehet gond ????

vagy valami más eltérés ??? másra már nem tok gondolni amennyire én értek ehhez...

Ja és holnap 12-ig kell leadnom asszem......... :F

Azért addig is köszi.... :R


Lortech
(addikt)

Begépeltem és nekem működik amit bescreenshotoltál. (az adatbázissémát is alátettem)

üzenetek