Adatbázis: SQL, XML DB

[megoldva] SQL join egyéni adatokkal

Hello!

Firebird-ben szeretném megoldani a következő problémát:

Adott egy táblám, ahol az egyik mező a készlet mozgás típusát adja meg. Konkrétan egy smallint mező, az alábbi jelentésekkel:

0 - bevételezés
1 - selejtezés
2 - kiszállítás
3 - visszaszállítás
4 - egyéb

Nyilván a user felé a szöveges megfelelőt kellene prezentálnom, nem a számkódot.

Van-e rá lehetőség, hogy az SQL lekérdezésben a megfelelő számkódhoz rendeljem a szöveges megfelelőt, vagy muszáj leszek létrehozni egy külön táblát ennek az 5 sornak, amit aztán joinolok?

Esetleg hogy máshogy lehet megoldani, hogy egy szimpla SQL lekérdezésben benne legyen minden rekordnál a kódszám és a szöveges megfelelő is?

Előre is köszi a segítséget!

Map-Reduce-alapu publish/subscribe-szeruseg

Sziasztok,

(Hatha vannak akik meg ezzel dolgoznak)

Van egy CouchDB adatbazis, amiben vannak valamilyen adatok, mondjuk, meresi adatok. Minden meresi adatnak van egy kulcsszava.

Idonkent robotok update-elik a meresi adatokat, ha valtozott, felirjak az uj datumot.

Kulcsszavakra felhasznalok fel tudnak iratkozni.

Feladat: olyan map-reduce query irasa, amely visszaadja a felhasznalonak azt, hogy a legutolso bejelentkezese ota milyen (feliratkozott) adatok valtoztak.

Szabadon hasznalhatoak segeddokumentumok, az sincs megkotve, hogy a felhasznalo->kulcsszavak vagy a kulcsszo->felhasznalok kapcsolat van tarolva az adatbazisban.

Otlet?

Sql tömb ultolsó sorának elemei

Sql tömb ultolsó sorának elemeit C++-ban hogyan tudom lekérdezni? Az igazság az, hogy nekem egy olyan függvény kellene, ami egy intet dob vissza, hogy hány sorból áll a tömmb, mert nem lehet tetszóleges hosszú a tömb amit be tudok tölteni, és a végéről kellene kezdenem. Pl az utlsó 500 elem.

Ja elfelejtettem:
SQLite, és mysql, most még sqlite-ben megy, de mysql-lesz belőle.

webshop adatbázis

Sziasztok
Adott egy adatbázis nevezzük delta-nak (phpmyadmin felülettel)
Ezen adatbázisban találhatóak a termékek (product ID, súly, méret, szín stb....)
Feltelepítettem egy opencart webshopot és a feladat ebbe beleimportálni a termékeket!

1. törlöm a webshop SQL adatbázisából a product ID sort(a product táblán belül phpmyadmin felületen) és próbálom beimportálni a "delta" product is-kat
De a teljes adatbázist akarja másolni és "az adatbázis már létezik" hibaüzenetet kapom.
Hogyan tudok egy táblába csak sorokat beszúrni-másolni? (kb 3000termékről van szó így egyesével maceráns lenne)

2. mindezt meg kellene tennem a súly, a méret, áfa, összeg sorokkal is

3 A két tábla struktúrája nem azonos így mindenképp csak sorokat kellene lecserélnem.
Hogyan tudom ezt megtenni?

köszi a segítséget

Help! Milyen program adatbazisa ez?

Kezembe kerult egy adatbazis dump, ami gyakorlatilag rengeteg .S kiterjesztesu filebol all, es mindegyik igy kezdodik:

2009-03-30 14:20:15.123
#$!pre-dump!$#
#$!languages!$#

a legtobb file itt veget is er, de nehanyban vannak tab-al elvalasztott ascii ertekek (rekordok, foleg szamok, neha text is).

latott mar valaki ilyen fileformatumot? az erdekelne elsosorban, milyen program hozza letre, esetleg valami doksi a formatumrol. adatokat kellene belole kinyerni es mysql-be importalni, de ez igy emeszthetetlen :(

koszi

A'rpi

MySQL bugok

Vegyünk egy piszok egyszerű lekérdezést:

SELECT *
FROM news
ORDER BY id DESC
LIMIT 0 , 10

Egy ilyen táblából:

CREATE TABLE IF NOT EXISTS `news` (
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
`uid` int(5) NOT NULL DEFAULT '0',
`cid` int(5) NOT NULL DEFAULT '0',
`lids` tinytext NOT NULL,
`uri_id` tinytext NOT NULL,
`title` tinytext NOT NULL,
`titletext` text NOT NULL,
`maintext` text,
`stamp` tinytext NOT NULL,
`approved` tinyint(1) DEFAULT '1',
`time` bigint(20) NOT NULL DEFAULT '0',
`views` int(11) DEFAULT '0',
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=68 ;

Én nem látok hibát. Márpedig így egy bizonyos mezőt mindig üresen ad vissza: uri_id. Próbáltam átnevezni is, az se számított.
Viszont ha az ORDER BY részt kiveszem vagy ASC-ra állítom, akkor már működik...
Whatta hell?

A másik meglepetés, ami sok időmbe került, az az volt, hogy ha egyazon felhasználóval csatlakozok 2 adatbázishoz ugyanazzal a címmel, akkor random elkezdi mixelni az adatbázisokat a lekérdezésekben. Magamtol sose jövök rá, hogy ha host/ip kettéválasztom őket, vagy másik felhasználóval csatlakozok, akkor már nem akad össze.

[MEGOLDVA] Cikkek szűrése szerző alapján

Sziasztok!

Van egy cikkek táblám, a cikkeknek pedig vannak szerzőik. Egy cikknek több szerzője is lehet, tehát ez egy a többhöz kapcsolat, ezért van egy szerzők táblám, a kettő között pedig egy relációs tábla. Lásd mintaadat:

http://hup.pastebin.com/p3nErbr6

Szeretném a "Masodik Szerzo"-höz tartozó cikkeket kilistázni a szerzők neveivel. Ha a következőt teszem, akkor valóban csak a szerző által írt cikkek jelennek meg, de a cikk két szerzője közül csak az jelenik meg, akire a keresés irányult:

SELECT cikkek.*, GROUP_CONCAT(DISTINCT szerzok.nev SEPARATOR ", ") AS 'szerzok' FROM cikkek LEFT JOIN relacio USING (cikk_id) LEFT JOIN szerzok USING (szerzo_id) WHERE szerzok.nev = 'Masodik Szerzo' GROUP BY cikkek.cikk_id;

Hogyan tudnám megoldani, hogy a cikk összes szerzője megjelenjen?

Két megjegyzés:
- A lekérdezés fő táblájának a 'cikkek'-nek kell lennie.
- Szerzőt id és név alapján is lehet szűrni az alkalmazásban.

Előre is köszönöm a segítséget!

Mysql SELECT ... IN (SELECT ...)

Sziasztok lenne egy érdekes kérdésem. Egy lekérdezésre felírok 3 változatot és hogy mennyi idő alatt futnak le. A kérdés az lenne hogy mért, illetve milyen mysql beállításom van elszúrva...

1.
$sql="SELECT id, nev FROM kategoriak WHERE id IN (SELECT kate_id FROM cegek_kategoriai WHERE ceg_id=".$id.")";

1.4 sec
---------------------------------------------------------------
2. $sql="SELECT id, nev FROM kategoriak as k, cegek_kategoriai as ck WHERE ck.ceg_id=".$id." AND k.id=ck.kate_id";

1.1 sec
---------------------------------------------------------------
3. (és ez az érdekes)

$sql="SELECT kate_id FROM cegek_kategoriai WHERE ceg_id=".$id;
$tmp=select($sql);

$st="";
for($k=0;$k<count($tmp)-1;$k++){
$st.=$tmp[$k]['kate_id'].",";
}
$st.= "0";
$sql="SELECT id, nev FROM kategoriak WHERE id IN (".$st.")";

0.045 sec! (45ms)
----------------------------------------------------------------

Mért lehet gyorsabb a 3-as mint az 1-es ,más ötletem nincs csak hogy minden kategóriára lefut a belső select, ha ez így van, lehet ezt orvosolni?

postgresql: 1 adatbazis, tobb role-al hozzaferheto-e?

Hello.

Letrehoztam egy role-t es adatbazist:

CREATE ROLE valami LOGIN
ENCRYPTED PASSWORD 'md5hash'
NOSUPERUSER INHERIT CREATEDB CREATEROLE;

CREATE DATABASE valami
WITH OWNER = valami
ENCODING = 'LATIN2'
TABLESPACE = pg_default
LC_COLLATE = 'hu_HU'
LC_CTYPE = 'hu_HU'
CONNECTION LIMIT = -1;

Letre akarok hozni es letre is hoztam 'valami' ROLE-al egy masik ROLE-t igy:

CREATE ROLE rview LOGIN
ENCRYPTED PASSWORD 'md5hash2'
NOSUPERUSER NOINHERIT NOCREATEDB NOCREATEROLE;

Le akarom korlatozni az rview-t, es azt mondom:

GRANT SELECT ON TABLE valami TO rview;

Ugye letrehoztam 'rview'-t ugy, hogy NOINHERIT-el es az a kerdes, hogy miert nem tudom modositani a 'valami' tablan az 'rview' jogait. psql-el megy, beagyazva (PHP) nem.

pg_query-vel a create role 'valami'-kent bejelentkezve megy, a masodik lepcsoben a grant nem. Mitol lehet?

Elore is koszonom a valaszokat!

mySql karakter kódolás

Sziasztok!

Van egy mysql adatbázisom, amibe az adatok utf-8 kódolással mennek. Van hozzá egy alkalmazás, utf-8-al van kódolva az is.
A táblák létrehozásánál nem figyeltem, és az alapértelmezett latin-1 swedish van belőve... Ha phpmyadminnal nézem, akkor az ékezetek rendben vannak. Ha az oldalon, akkor nem jó:(
Meg tudom változtatni büntetlenül a táblák, adatbázis összevetését kódlappal? Megtettem, és átmenetileg nem tudtak belépni a userek. Felhasználónévben nincs ékezet, jelszó sha-1 encrypted. Ha visszaállítottam a táblák összevetését utána jó lett...

Mi lehet a megoldás?