Hej på Er! select * from files_filesInner joins och annat roligt...
Jag har kört fast på en kanske mycket enkel SQL-fråga.. men jag får inte till det på ett optimalt sätt iallafall. Detta gäller en ASP-sida som skall visa olänkade filer som är uppladdade på denna extranet-web.
Jag tar inte med alla fältnamn eftersom det inte är så viktigt.
Databas: misc
Tabellstruktur:
files_files (alla filer med beskrivning och storlek etc.)
Fält: files_id
Fält: files_filename
products_ref
Fält: products_file_id
customers_ref
Fält: customers_file_id
tools_ref
Fält: tools_file_id
Vad jag nu vill göra är att kontrollera alla filer i tabellen files_files
och se om dessa existerar i någon annan tabell. Om inte så är filen olänkad och ligger bara och "skräpar" på servern. Alla filer skall vara länkade till en produkt/kund/verktyg.
Visst kan jag först ställa en fråga till files_files och sen kolla varje
post för sig om just det id't existerar i en annan tabell, men det
kan inte vara det optimala sättet. Det tar åratal innan detta är klart.
Har nån någon bra idé som kan hjälpa mig?
// Peter "står still i huvet" CarlssonSv: Inner joins och annat roligt...
where file_id not in (select products_file_id from products_ref)
and file_id not in (select customers_file_id from customers_ref)
and file_id not in (select tools_file_id from tools_ref)
/TommySv: Inner joins och annat roligt...
SELECT files_id FROM files_files ff
LEFT OUTER JOIN products_ref pr
ON ff.files_id = pr.products_file_id
LEFT OUTER JOIN customers_ref cr
ON ff.files_id = cr.customers_file_id
LEFT OUTER JOIN tools_ref tr
ON ff.files_id = tr.tools_file_id
WHERE pr.products_file_id IS NULL
AND cr.customers_file_id IS NULL
AND tr.tools_file_id IS NULL