データが格納されている複数のテーブルがあります。
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 テーブルには含まれていないため、dnstld、dns2ld、および dns3ld テーブルで識別されないドメインが多数ある可能性があります。