我有多個表中存儲數據。mysql複雜的加入與許多表可能的空值
DNS表包含
tld(id) | 2ld(id) | 3ld(id) | IPAddress
101 | 33 | 3 | 203.11.1.19
(實施例值)
我有dnstld表與
id(index) | value(char)
101 | 'com'
(實施例值)
similarl y dns2ld,dns3ld。例如(33,'marriot')和dns3ld(3,'澳大利亞')包含dns2ld。
我可以加入這些表內部聯接容易
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不能爲空。
我可能有許多域在黑名單中,但不在dns表中,因此在dnstld,dns2ld和dns3ld表中沒有標識。
使用'LEFT JOIN' – Kermit