prosim o pomoc s dotazem

Potreboval bych sestavit dotaz a nevim, jak na to, pomuze mi nekdo? Situace je nasledujici:

mam 3 tabulky:
1. uzivatele
2. dokumenty
3. zaznamy

Pokud nektery z uzivatelu potvrdi libovolny dokument z tabulky dokumenty, zapise se do tabulky zaznam zapis s jeho ID, ID dokumentu a dalsimi udaji.
Ja potrebuju sestavit dotaz, ktery zjisti, ktere dokumenty jeste dotycny uzivatele nepotvrdil. Slo by to tak, ze bych jednim dotazem vybral vsechny dokumenty a pak je prochazel a u kazdeho dalsim dotazem overoval, zda existuje zaznam o jeho potvrzeni danym uzivatelem. Pokud ano, nic by se nedelo, pokud ne, vypsal by se nejaky vystup a navysilo vlastni pocitadlo vysledku.
Nicmene tento zpusob se mi nehodi, ponevac bych to potreboval mit vse v jednom dotazu. Vysledky totiz pote strankuju a v tom skripte vyuzivam fce mysql_num_rows($vysledek) a mysql_data_seek($vysledek, ($stranka*$kolik-$kolik))) a to by pak nefungovalo, pokud bych pro celkovy pocet zaznamu pouzival to vlastni pocitadlo.
Nevite nekdo, jak tedy sestavit dotaz typu:

"vyber vsechny dokumenty z tabulky 'dokumenty', kde v tabulce 'zaznamy' neexistuje zaznam o potvrzeni tohoto dokumentu timto uzivatelem"?

predem dikas za kazdou radu
dobrouběž spát a kašli na to:)
select * from dokumenty
where not exists (select * from zaznamy where potvrzeni=ok)

ale jestli to jde v MySQL nevím.
zkusil jsem:

SELECT * FROM dokumenty
WHERE NOT EXISTS
(SELECT * FROM dokumenty, zaznamy WHERE zaznamy.id_dokumentu = dokumenty.id_dokumentu AND zaznamy.id_uzivatele = 'userID')

..vyhodilo mi to ale chybu syntaxe a nevim, kde je tedy chyba :o(

-----------------------------------------
#1064 - You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near 'EXISTS (
SELECT *
FROM dokumenty, zaznamy
WHERE ...
-----------------------------------------
Subselecty tahle verze mySQL jeste nezvlada
dobre a jde to nejak obejit?
file:///C:/mysql/Docs/manual_toc.html#Rewriting_subqueries

The queries:

SELECT * FROM t1 WHERE id NOT IN (SELECT id FROM t2);
SELECT * FROM t1 WHERE NOT EXISTS (SELECT id FROM t2 WHERE t1.id=t2.id);

Can be rewritten as:

SELECT table1.* FROM table1 LEFT JOIN table2 ON table1.id=table2.id
WHERE table2.id IS NULL;
Nevim jak to chodí na web zdarma, jak a kam se zadávaj SQL příkazy, a jak to vypadá. Díky za odpověď
1) Založ si příště nový téma, ať to tady je přehlednější
2) Existuje tu nástroj pro správu MySQL "phpMyAdmin" (Administrace/Nastavení/phpMyAdmin)

Add 2):
Za předpokladu, že trochu umíš PHP a SQL
zkusil jsem to tedy pres JOIN, naslednym zpusobem:

SELECT rd2_dokumenty.*
FROM rd2_dokumenty
LEFT JOIN rd2_zaznamy ON rd2_dokumenty.id_dokumentu = rd2_zaznamy.id_dokumentu
WHERE (rd2_zaznamy.id_dokumentu) IS NULL

..to funguje, nicmene... Ja tenhle dotaz vypise vsechny dokumenty, ktere nemaji v tabulce rd2_zaznamy zadny zaznam. Ja vsak potrebuji, aby mi to vypsalo dokumenty, ktere nemaji v tabulce rd2_zaznamy zaznam od KONKRETNIHO UZIVATELE. Myslel jsem, ze bude stacit mirne pozmenit dotaz na:

SELECT rd2_dokumenty.*
FROM rd2_dokumenty
LEFT JOIN rd2_zaznamy ON rd2_dokumenty.id_dokumentu = rd2_zaznamy.id_dokumentu
WHERE (rd2_zaznamy.id_dokumentu AND rd2_zaznamy.id_uzivatele = '$uid') IS NULL

...to ale nefunguje, na tuto podminku uz to nereaguje. Nevite nekdo, jak ji do toho zakomponovat?
ja bych to napsal spis takhle, ale nezkousel sem , jestli to opravdu funguje...
------------------
SELECT rd2_dokumenty.*
FROM rd2_dokumenty
LEFT JOIN rd2_zaznamy ON rd2_dokumenty.id_dokumentu = rd2_zaznamy.id_dokumentu
WHERE rd2_zaznamy.id_dokumentu IS NULL AND rd2_zaznamy.id_uzivatele = '$uid';
tak to, bohuzel, nejde... vysledkem neni zadny vypis
IMHO se ty 2 podminky navzajem vylucuji, takze to ani nikdy nic vypsat nemuze, nevim...
jasně, že se to tluče, ty se musíš ptát na id z tabulky, kde to je, tety rd2_dokumenty ne rd2_zaznamy. Tedy:

SELECT rd2_dokumenty.*
FROM rd2_dokumenty
LEFT JOIN rd2_zaznamy ON rd2_dokumenty.id_dokumentu = rd2_zaznamy.id_dokumentu
WHERE (rd2_zaznamy.id_dokumentu IS NULL) AND (rd2_dokumenty.id_uzivatele = '$uid');

jestli tam nic takového (rd2_dokumenty.id_uzivatele) není, tak to tam bude třeba dodělat.
diky, uz jsem to vyresil nasledovne:

SELECT *
FROM rd2_dokumenty
LEFT JOIN rd2_zaznamy ON (
( rd2_dokumenty.id_dokumentu = rd2_zaznamy.id_dokumentu )
AND
( rd2_zaznamy.id_uzivatele = '$userID' )
)
WHERE (
( (rd2_zaznamy.id_dokumentu) AND (rd2_zaznamy.id_uzivatele = '$userID') ) IS NULL )
AND rd2_dokumenty.stav_dokumentu = '$docState'