У меня есть три таблицы: exfillocation, phishkit, снимок.Нам нужно иметь возможность запросить exfillocation.filename и напечатать соответствующий snapshot.id, который требует обхода таблицы phishkit.
exfillocation.phishkit_id связан с phishkit.id в качестве внешнего ключа.
Схема exfillocation таблицы:
id exfil_location phishkit_id
== ========= ============
1 ['open.txt'] 7442
2 ['bot.txt'] 9931
phishkit.snapshot_id относится к snapshot.id в качестве внешнего ключа.
Схема Phishkit:
id snapshot_id md5
=== ============ =====
7442 1492 f4a3954e39b90c02f4a3954e39b90c02
9931 1661 e048f240ad0845b50abe8df9124ce3fb
Схема снимка:
id asn url
=== ====== =============
1661 123 badwebsite.malicious.com
1492 31 haxx0rs.hacking.com
Я пытался прочитать четыре различных метода JOIN в postgresql, а также метод UNION, но я не понимаюПохоже, не возвращается столбец snapshot_id.
Я попытался сделать что-то неловкое:
SELECT exfil_location, found_in_file, phishkit_id
FROM public.lookup_exfillocation
FULL OUTER JOIN public.lookup_phishkit
ON public.lookup_exfillocation.phishkit_id = public.lookup_phishkit.id
FULL OUTER JOIN public.lookup_snapshot
ON public.lookup_phishkit.snapshot_id = public.lookup_snapshot.id WHERE exfil_location::text NOT LIKE ('__script.txt__') ORDER BY phishkit_id;
Я ожидал увидеть связанный lookup_snapshot.id и связанный lookup_phishkit.id, который тожепоказал.
![Results not showing the related snapshot.id column](https://i.stack.imgur.com/qY9vv.png)