prosím o radu .. SQL (access)   otázka

SQL

Můžete mi někdo prosím poradit?

Něco jako úkol..

Mám dvě accessové tabulky..

1.tabulka KNIHY:

-nazev

-autor

-cena

-datumNakupu

-knihkupectvi

2.tabulka KNIHKUPECTVI:

-nazev

-poslInventura

-pristInventura

-pocetKnih

PRIMÁRNÍ KLÍČ: KNIHKUPECTVI.nazev

RELACE: KNIHKUPECTVI.nazev(1) --> (∞)KNIHY.knihkupectvi

chci vypsat veškeré informace, jak z tabulky KNIHY, tak z tabulky KNIHKUPECTVÍ,

tímto způsobem:

SELECT *
FROM knihkupectvi, knihy
WHERE knihkupectvi.nazev = knihy.knihkupectvi

ale jen pro ta knihkupectví, kde je cena alespoň jedné knihy nad 400kč

nahlásit spamnahlásit spam 0 odpovědětodpovědět

V první řadě bych jako PK nedával "nazev", protože nemůžeš nikdy zaručit, že se nevyskytne kniha nebo knihkupectví se stejným názvem, ale s jinými parametry, takže bych dal jako PK nějaké to IDčko (a samozřejmě auto increment).

Když provážeš nějakým "WHERE" ty dvě tabulky, tak z nich nikdy nemůžeš jedním dotazem získat "všechna" data najednou, protože jsou omezena tím

WHERE knihkupectvi.nazev = knihy.knihkupectvi

Zkus trošku víc specifikovat, jaká data se to vlastně mají zobrazit?

nahlásit spamnahlásit spam 0 odpovědětodpovědět

píšu to z hlavy, nemám možnost si to vyzkoušet, ale zkus to

SELECT knihy.nazev, knihy.autor, knihy.cena, knihy.datumNakupu, knihy.knihkupectvi, knihkupectvi.nazev, knihkupectvi.poslinventura, knihkupectvi.pristiinventura, knihkupectvi.pocetknih LEFT JOIN knihkupectvi ON knihy.knihkupectvi = knihkupectvi.nazev WHERE knihkupectvi.nazev IN (SELECT knihkupectvi.nazev FROM knihkupectví WHERE knihy.cena > 400 LEFT JOIN knihkupectvi ON knihy.knihkupectvi = knihkupectvi.nazev)
nahlásit spamnahlásit spam 0 odpovědětodpovědět

To ID jsem zatím neřešil, měli jsme si vytvořit nějakou triviální tabulku, na které bychom se naučili používat SQL dotazy.

Chtěl jsem jen zjistit, jestli to jde obejít a takto jednoduše získat data z dvou tabulek (WHERE knihkupectvi.nazev = knihy.knihkupectvi) a zároveň nějak úsporně vyfiltrovat, ale asi nejde.

Díky!

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Minimálně se ty tabulky musí v dotazu propojit JOINEM, jinak to asi nepůjde. Zkoušels ten dotaz, jestli funguje?

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Zkoušel.. už ani nevím, co mi to psalo za chybu.. tu tabulku už totiž nemám.. myslím, že byl zmatený z těch dvou LEFT JOIN :D

nahlásit spamnahlásit spam 0 odpovědětodpovědět
                       
Nadpis:
Antispam: Komu se občas házejí perly?
Příspěvek bude publikován pod identitou   anonym.
  • Administrátoři si vyhrazují právo komentáře upravovat či mazat bez udání důvodu.
    Mazány budou zejména komentáře obsahující vulgarity nebo porušující pravidla publikování.
  • Pokud nejste zaregistrováni, Vaše IP adresa bude zveřejněna. Pokud s tímto nesouhlasíte, příspěvek neodesílejte.

přihlásit pomocí externího účtu

přihlásit pomocí jména a hesla

Uživatel:
Heslo:

zapomenuté heslo

 

založit nový uživatelský účet

zaregistrujte se

 
zavřít

Nahlásit spam

Opravdu chcete tento příspěvek nahlásit pro porušování pravidel fóra?

Nahlásit Zrušit

Chyba

zavřít

feedback