私にはビューA
とビューがありますB
。
には、すべてを保存したいシステムなど、A
いくつかのシステムに関する多くの情報があります。にに追加したい情報が 1 つだけあります。IP
port
B
A
2 つのビュー間で一致するフィールドはIP
とPort
です。したがって、両方のビューで同じ IP とポートを持つホストを一致させる必要があります。
例:
ビュー A:
IP | OS | Hostname | Port | Protocol
1 | Win | hostONE | 80 | tcp
1 | Win | hostONE | 443 | tcp
1 | Win | hostONE | 8080 | tcp
2 | Linux | hostTWO | 21 | tcp
2 | Linux | hostTWO | 80 | tcp
3 | Linux | hostTR | 22 | tcp
ビュー B:
IP | Port | State
1 | 443 | Open
2 | 80 | Closed
出力
IP | OS | Hostname | Port | Protocol | State
1 | Win | hostONE | 80 | tcp |
1 | Win | hostONE | 443 | tcp | Open
1 | Win | hostONE | 8080 | tcp |
2 | Linux | hostTWO | 21 | tcp | Closed
2 | Linux | hostTWO | 80 | tcp |
3 | Linux | hostTR | 22 | tcp |
注: ビュー A の一部のホストには、ビュー B に IP/ポート関連のアイテムがない可能性があります。
ビュー A の一部のホストがビュー B に一致する可能性もあります。
ビュー A のすべてのエントリとビュー B の正しい関連エントリを取得するには、LEFT JOIN を使用する必要があると考えましたが、うまくいきませんでした。適切な WHERE 句と JOIN ソリューションを使用してクエリを調整できません。
何か案が?