Autor Zpráva
Paja222
Profil
Ahoj,
potřeboval bych poradit ohledně sql dotazu.

Uvedu vzorový příklad s vymyšlenými daty. Mám 3 tabulky.

1. tabulka - `inzeraty` obsahuje sloupečky `idinseratu` a `nazev`
2. tabulka - `uzivatele` obsahuje sloupečky `iduzivatele` a `login`
poslední - 3. tabulka `log` obsahuje 2 sloupečky `idinseratu` a `iduzivatele`

1. tabulka:
1 - první inzerát
2 - druhý inzerát
3 - třetí inzerát

2. tabulka
1 - první uživatel
2 - druhý uživatel
3 - třetí uživatel

Co potřebuji, je vybrat všechny názvy inzerátů, kde neodpovídají klíčům v logovací tabulce a zároveň odpovídají zvolenému uživateli. Kdyby byla logovací tabulka prázdná a iduživatele by bylo 1, vybrala by se všechna data, respektive:
1-1 ....... 2-1 ....... 3-1

Kdyby v logovací tabulce byla data:
1-1
1-3
2-2
3-2,

výsledek by byl:
......... 2-1 ....... 3-1


prostě vše, co neopovídá datům v logovací tabulce.

Klíče v uživatelích a inzerátech jsou unikátní, všechny klíče v logovací tabulce existují. V logovací tabulce nemusí být žádný záznam, ale reálně jich tam bude kolem tisíce. Inserátů kolem 500 a uživatelů kolem 2000.

Snad jsem to vysvětlil dost konkrétně :-) Kdo by věděl, dejte mi prosím vědět. Kdybych něco zapomněl, klidně se zeptejte.

Díky
jenikkozak
Profil
Tento výsledek se dá získat pomocí poddotazu:
SELECT nazev FROM inzeraty WHERE idinseratu NOT IN (SELECT id FROM log)
Druhá část podmínky se udělat nedá. Pokud není záznam v logovací tabulce, tak inzerát nemůže odpovídat zvolenému uživateli.

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: