我有多个存储数据的表。
DNS 表包含
tld(id) | 2ld(id) | 3ld(id) | IPAddress
101 | 33 | 3 | 203.11.1.19
(示例值)
我有dnstld表
id(index) | value(char)
101 | 'com'
(示例值)
同样dns2ld, dns3ld。
例如,dns2ld 包含 (33,'marriot'),dns3ld 包含 (3,'australia')。
我可以轻松地将这些表与内部连接连接起来
INNER JOIN dns2ld ON dns.2ld=dns2ld.id
INNER JOIN dnstld ON dns.tld=dnstld.id
INNER JOIN dns3ld ON dns.3ld=dns3ld.id
但是我有另一个表,其中包含列入黑名单的域
id(uniq) | 3ld(char) | 2ld(char) | tld(char)
如何加入这 5 个表,以便列出与黑名单匹配的 DNS 表中的内容。注意黑名单中的 3ld 可能为 NULL,2ld 可能为 NULL,但 tld 不能为 null。
我可能有许多域在黑名单中,但不在 dns 表中,因此在 dns2ld、dns2ld 和 dns3ld 表中未识别。