Autor Zpráva
Chadas
Profil
Pokouším se vytvořit relaci mezi databázemi. Systém mi oznámil, že funkce relací jsou vypnuté. Kde si je můžu zapnout (povolit)? Díky.
Taps
Profil
O jaky system se jedna a o jaky typ databaze?
Kajman
Profil
Relací nazýváte cizí klíč?

Pokud chcete dělat v mysql cizí klíč mezi dvěma tabulkami, ujistěte se, že jsou obě typu innodb.

Pokud chcete dělat v mysql cizí klíč mezi dvěma tabulkami z různých databází, ujistěte se, že uživatel na to má některé z oprávnění.
Chadas
Profil
Jedná se o Wampserver a MySQL databazi. Relací myslím spojení dvou tabulek přes jedno společné pole. Snad to nazývám správně. Potřebuju propojit tyto dvě tabulky abych dostal data zo dvou tabulek do jedné. Data jsou provázaná společným polem ID. V jedné tabulce se toto pole vyskytuje vždy pouze 1x u druhé tabulky je možnost několikanásobného výskytu (více vět s polem ID). Pro ilustraci přikládám obrázky jako postup o relaci mezi databázemi v prostředí phpMyAdmin.

Kliknutí na položku v menu - Vytvořit relaci



Tady jsem postupně kliknul v levé tabulce na první položku a následně ve druhé tabulce na druhou položku (customers_ID).



A tohle je výsledek mého snažení :(



Zároveň bych chtěl poprosit jestli mi s předstihem někdo poradí příkaz abych vypsal některá pole z jedné tabulky a některé pole ze druhé tabulky za splnění jediné podmínky. Byl jsem sice dnes v knihovně pro pár chytrých knih ale zatím mi to moc nepomohlo. Pokoušel jsem se to obejít a použil jsem MS ACCESS. Celkem výsledek v pořádku ale místo jediné věty u hlavního klíče ID mám ve výsledné tabulce právě těch více výskytů které jsou obsaženy ve druhé tabulce :( Jinak bych měl vyřešeno. Za žadnou cenu se mi to nedaří udělat jako relace 1:1. Předem moc děkuji.
Tomášeek
Profil
Chadas:
abych vypsal některá pole z jedné tabulky a některé pole ze druhé tabulky za splnění jediné podmínky.
Na základě jaké podmínky? To může být docela důležité.
Chadas
Profil
Za podmínky kdy customers_newsletter = 1.
Tomášeek
Profil
Chadas:
Píšu z hlavy, ale mohlo by to být asi takto.

SELECT c.sloupce_z_prvni_tabulky, 
       o.sloupce_z_druhe_tabulky
FROM zen_customers c
JOIN zen_orders o
    ON c.customer_id = o.customer_id -- zde by se dal při shodném jméně sloupce použít asi i USING (customer_id)
WHERE c.customers_newsletter = 1
Chadas
Profil
Díky moc za snahu ale tohle bohužel nedám :( Neznám přesně ani syntaxu zápisu a dohledávat každou zapomenutou uvozovku když ani přesně nevím kde má být a kde nemá je neúměrné výsledku :( Hold to budu dělat jako dřív v excelu pomocí funkce SVYHLEDAT(). Měl jsem představu, že to půjde líp ale vzhledem k tomu, že si už nepamatuju příkazy, nemá asi cenu to lámat přes koleno. Stejně bych to potřeboval nakonec jako export třeba do csv a nejenom na prohlížení. Já vím, to už je maličkost ale pro někoho kdo to zná.

Snaha byla ale nakonec jsem to vzdal.

SELECT zen_customers.customer_id, zen_customers.customer_gender, zen_customers.custumer_firstname, zen_customers.customer_lastname, zen_customers.customer_email_address, zen_orders.customers_street_address, zen_orders.customers_city, zen_orderscustomers_postcode FROM zen_customers JOIN zen_orders ON zen.customers_id = zen_orders.customers_id .....

Ještě mám v záloze MS ACCESS kde to jde sice skvěle ale bohužel ve výsledku se mi tam některé věty opakují a zatím jsem nepřišel jak se z toho zbavit. V excelu ten problém nemám. Tak ještě jednou dík a třeba seženu někoho v okolí kdo mi napíše ten vzorový příkaz. Hezký den.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0