podmíněný select ze dvou tabulek   otázka

SQL, Databáze

Ahoj,

prosím, kdo mi poradí s SQL dotazem?

Potřebuji ze dvou tabulek vytáhnout data tímto způsobem.

DATA obsahuje

Sloupce: Index, popis, datum, atd....

FOTKY obsahuje

Sloupce: Index, IndexA, soubor, popis, zobrazit

Tabulky jsou v relaci Data.Index (1)->(N) Fotky.IndexA

Potřebuji Select pro DATALIST, kde mi vypíše

VŠECHNY položky z DATA - ale POUZE 1X

a ke každému řádku JEDNU Fotku - pokud fotka existuje (s nejnižším Index, nebo Zobrazit = True)

Mělo by to vyjet tabulku s řádky, na každém řádku jeden záznam z DATA a k tomu jednu fotku z FOTKY - nebo NULL pokud neexistuje žádný záznam v tabulce Fotky.

Jediný co se mi podařilo, je že mi vyjede všechno z tabuly DATA + všechno z tabulky Fotky.

SELECT     Data.Index,Data.Popis,Data.Datum,
           Fotky.soubor, Fotky.popis AS popisfotky, 
FROM       Data INNER JOIN
LEFT OUTER JOIN
           Fotky ON Data.Index = Fotky.IndexA

Potřebuju aby se zobrazil každý řádek DATA.Index pouze 1x a k němu jedna fotka (pokud existuje).

Zkoušel jsem DISTINCT, GROUP BY a stále se mi nedaří.

Pořád mi to řve že se nedá Group By použít kvůli sloupci Fotky.soubor.

Snad je pochopitelné co jsem tu zplodil.

Budu vděčný za pomoc.

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

Těch způsobů je samozřejmně víc nevím jestli to bude fungovat píšu to jen tak z hlavy.

SELECT Data.Index,
	   Data.Popis,
	   Data.Datum,
	   Fotky.soubor,
	   Fotky.popis AS popisfotky
	   FROM Data
LEFT JOIN (SELECT MIN(FOTKY.Index) AS Index,
				  FOTKY.IndexA		  
		   FROM FOTKY GROUP BY FOTKY.IndexA) SQL1 ON Data.Index=SQL1.Index
LEFT JOIN FOTKY ON SQL1.Index = FOTKY.Index

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