0

たとえば、次の 2 つのデータ テーブルがあります。

ネットワークの状態

ipaddress       time       violation
192.168.1.1     2:00       yes
192.168.1.6     2:00       no
192.168.1.11    2:00       no
192.168.1.1     3:00       no
192.168.1.6     3:00       no
192.168.1.11    3:00       yes

ファイアウォール ログ

ipaddress       machinetype    location
192.168.1.1     computer       London
192.168.1.6     server         New York
192.168.1.11    server         Bejing

そして、ファイアウォール ログからのデータをネットワーク ステータス テーブルにマージしたいので、次のようになります。

ネットワークの状態

ipaddress       time       violation       machinetype       location
192.168.1.1     2:00       yes             computer          London
192.168.1.6     2:00       no              server            New York
192.168.1.11    2:00       no              server            Bejing
192.168.1.1     3:00       no              computer          London
192.168.1.6     3:00       no              server            New York
192.168.1.11    3:00       yes             server            Bejing

誰にもアイデアはありますか?特定の列の値でテーブルをマージするコマンドがあると思いましたが、調査の結果、結合と選択のコマンドにしか遭遇しませんでした。しかし、これらを使用して目的を達成する方法がわかりません。

ありがとう!

4

2 に答える 2

3

ビューについてどう思いますか?2 つのテーブルを select で結合し、そこからビューを作成します

CREATE VIEW myView AS SELECT log.*,status.* FROM log, status 
WHERE log.ipaddress=status.ipaddress 

/* OR */
CREATE VIEW myView AS SELECT log.*,status.* FROM log l
INNER JOIN status s ON l.ipaddress=s.ipaddress
于 2012-11-21T14:49:01.633 に答える
1

このテーブルを「マージ」するには、次のものが必要です。

1) 「マシンタイプ」列と「場所」列を「ネットワーク ステータス」テーブルに追加します。

ALTER TABLE "Network Status"
  ADD COLUMN "machinetype" TEXT;
ALTER TABLE "Network Status"
  ADD COLUMN "location" TEXT;

2)それらにデータを入力します

UPDATE "Network Status" NS
SET "machinetype" = FL."machinetype",
    "location" = FL."location"
FROM "Firewall Log" FL
WHERE FL."ipaddress" = NS."ipaddress"

または、 を作成して、テーブルであるかのようVIEWにデータに使用することもできます。SELECT

CREATE VIEW "Status and log" AS
SELECT NS."ipaddress", NS."time", NS."violation", FL."machinetype", FL."location"
FROM "Network Status" NS
JOIN "Firewall Log" FL ON FL."ipaddress" = NS."ipaddress"
于 2012-11-21T15:44:43.763 に答える