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!
SQL kérdések - Szoftverfejlesztés fórum
hozzászólások
_Lord_B_
(tag)
#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.
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 ]
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
Ú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.
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
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
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 , 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 ]
Köszi..
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.
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 )
[ Szerkesztve ]
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
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.
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.........
Azért addig is köszi....