- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试连接两个表:
peering_autonomoussystem.potential_internet_exchange_peering_sessions
(包含 ipv4 或 ipv6 地址数组)
和
peeringdb_networkixlan.ipaddr4
(包含一个简单的 ipv4 地址)
和
peeringdb_networkixlan.ipaddr6
(包含一个简单的 ipv6 地址)
我在弄清楚如何将 inet
值与未嵌套的 inet[]
数组的值相关联以完成连接时遇到问题。
我尝试了不同的变体来尝试使某些东西起作用,但我没有取得太大进展。我想知道是否有人可以按我的方式提出一些建议?
select
peering_autonomoussystem.asn,
peering_autonomoussystem.name,
unnest(peering_autonomoussystem.potential_internet_exchange_peering_sessions),
peeringdb_networkixlan.ipaddr4,
peeringdb_networkixlan.ipaddr6,
peeringdb_networkixlan.name
from
(
select unnest(peering_autonomoussystem.potential_internet_exchange_peering_sessions)
from peering_autonomoussystem
) as inet(ip)
join
peeringdb_networkixlan
on
peeringdb_networkixlan.ipaddr4 = inet.ip
ERROR: missing FROM-clause entry for table "peering_autonomoussystem"
LINE 2: peering_autonomoussystem.asn,
^
SQL state: 42P01
Character: 9
peering_manager=# select
peering_manager-# peering_autonomoussystem.asn,
peering_manager-# peering_autonomoussystem.name,
peering_manager-# unnest(peering_autonomoussystem.potential_internet_exchange_peering_sessions),
peering_manager-# peeringdb_networkixlan.ipaddr4,
peering_manager-# peeringdb_networkixlan.ipaddr6,
peering_manager-# peeringdb_networkixlan.name
peering_manager-# from
peering_manager-# peering_autonomoussystem
peering_manager-# join
peering_manager-# peeringdb_networkixlan
peering_manager-# on
peering_manager-# peeringdb_networkixlan.ipaddr4 @> peering_autonomoussystem.potential_internet_exchange_peering_sessions
peering_manager-#
peering_manager-# ;
ERROR: operator does not exist: inet @> inet[]
LINE 13: peeringdb_networkixlan.ipaddr4 @> peering_autonomoussystem....
^
HINT: No operator matches the given name and argument types. You might need to add explicit type casts.
peering_manager=#
这是我正在使用的两个表中的数据集:
peering_manager=# \d peering_autonomoussystem
Table "public.peering_autonomoussystem"
Column | Type | Collation | Nullable | Default
----------------------------------------------+--------------------------+-----------+----------+------------------------------------------------------
id | integer | | not null | nextval('peering_autonomoussystem_id_seq'::regclass)
asn | bigint | | not null |
name | character varying(128) | | not null |
comment | text | | not null |
ipv6_max_prefixes | integer | | not null |
ipv4_max_prefixes | integer | | not null |
updated | timestamp with time zone | | |
irr_as_set | character varying(255) | | |
ipv4_max_prefixes_peeringdb_sync | boolean | | not null |
ipv6_max_prefixes_peeringdb_sync | boolean | | not null |
irr_as_set_peeringdb_sync | boolean | | not null |
created | timestamp with time zone | | |
potential_internet_exchange_peering_sessions | inet[] | | not null |
contact_email | character varying(254) | | not null |
contact_name | character varying(50) | | not null |
contact_phone | character varying(20) | | not null |
Indexes:
"peering_autonomoussystem_pkey" PRIMARY KEY, btree (id)
"peering_autonomoussystem_asn_ec0373c4_uniq" UNIQUE CONSTRAINT, btree (asn)
Check constraints:
"peering_autonomoussystem_ipv4_max_prefixes_check" CHECK (ipv4_max_prefixes >= 0)
"peering_autonomoussystem_ipv6_max_prefixes_check" CHECK (ipv6_max_prefixes >= 0)
Referenced by:
TABLE "peering_directpeeringsession" CONSTRAINT "peering_directpeerin_autonomous_system_id_691dbc97_fk_peering_a" FOREIGN KEY (autonomous_system_id) REFERENCES peering_autonomoussystem(id) DEFERRABLE INITIALLY DEFERRED
TABLE "peering_internetexchangepeeringsession" CONSTRAINT "peering_peeringsessi_autonomous_system_id_9ffc404f_fk_peering_a" FOREIGN KEY (autonomous_system_id) REFERENCES peering_autonomoussystem(id) DEFERRABLE INITIALLY DEFERRED
peering_manager=# select
peering_autonomoussystem.asn,
peering_autonomoussystem.name,
unnest(peering_autonomoussystem.potential_internet_exchange_peering_sessions)
from
peering_autonomoussystem limit 10;
asn | name | unnest
-------+--------------------------------+-------------------------
5400 | BT | 2001:504:1::a500:5400:1
5400 | BT | 198.32.160.80
21724 | Radiant Communications Toronto | 2001:504:1a::34:102
8002 | Stealth Communications | 2001:504:1::a500:8002:1
8002 | Stealth Communications | 2001:504:36::1f42:0:1
8002 | Stealth Communications | 206.82.104.194
10835 | Visionary Communications, Inc. | 2001:504:16::2a53
10835 | Visionary Communications, Inc. | 206.81.80.57
23473 | Pavlov Media INC. | 2001:504:17:115::224
23473 | Pavlov Media INC. | 206.126.115.224
(10 rows)
peering_manager=#
peering_manager=# \d peeringdb_networkixlan;
Table "public.peeringdb_networkixlan"
Column | Type | Collation | Nullable | Default
------------+------------------------+-----------+----------+----------------------------------------------------
id | integer | | not null | nextval('peeringdb_networkixlan_id_seq'::regclass)
asn | bigint | | not null |
ipaddr6 | inet | | |
ipaddr4 | inet | | |
is_rs_peer | boolean | | not null |
ix_id | integer | | not null |
name | character varying(255) | | not null |
ixlan_id | integer | | not null |
Indexes:
"peeringdb_networkixlan_pkey" PRIMARY KEY, btree (id)
Check constraints:
"peeringdb_networkixlan_ix_id_check" CHECK (ix_id >= 0)
"peeringdb_networkixlan_ixlan_id_check" CHECK (ixlan_id >= 0)
Referenced by:
TABLE "peeringdb_peerrecord" CONSTRAINT "peeringdb_peerrecord_network_ixlan_id_97d3feaa_fk_peeringdb" FOREIGN KEY (network_ixlan_id) REFERENCES peeringdb_networkixlan(id) DEFERRABLE INITIALLY DEFERRED
peering_manager=# select
peering_manager-# peeringdb_networkixlan.ipaddr4,
peering_manager-# peeringdb_networkixlan.ipaddr6,
peering_manager-# name
peering_manager-# from
peering_manager-# peeringdb_networkixlan
peering_manager-# where
peering_manager-# ipaddr6 = '2001:504:1::a500:5400:1'
peering_manager-# or
peering_manager-# ipaddr4 = '198.32.160.80'
peering_manager-# or
peering_manager-# ipaddr6 = '2001:504:1a::34:102'
peering_manager-# or
peering_manager-# ipaddr6 = '2001:504:1::a500:8002:1'
peering_manager-# or
peering_manager-# ipaddr4 = '206.82.104.194'
peering_manager-# or
peering_manager-# ipaddr6 = '2001:504:16::2a53'
peering_manager-# or
peering_manager-# ipaddr4 = '206.81.80.57'
peering_manager-# or
peering_manager-# ipaddr6 = '2001:504:17:115::224'
peering_manager-# or
peering_manager-# ipaddr4 = '206.126.115.224';
ipaddr4 | ipaddr6 | name
-----------------+-------------------------+----------------------------------------------
206.108.34.102 | 2001:504:1a::34:102 | TorIX
206.126.115.224 | 2001:504:17:115::224 | Digital Realty New York
198.32.160.80 | 2001:504:1::a500:5400:1 | NYIIX
198.32.160.33 | 2001:504:1::a500:8002:1 | NYIIX
206.81.80.57 | 2001:504:16::2a53 | SIX Seattle: MTU 1500
206.82.104.194 | 2001:504:36::1f42:0:1 | DE-CIX New York: DE-CIX New York Peering LAN
(6 rows)
peering_manager=#
更新:
根据@Laurenz Albe 的建议,我改进了查询以使用 ANY
产生了积极的结果,尽管查询需要改进。以pas.asn = 812
为例:
select
pas.asn asnumber,
pas.name asname,
pas.potential_internet_exchange_peering_sessions potential,
pdbnil.ipaddr4 ipv4,
pdbnil.ipaddr6 ipv6,
pdbnil.name ixname
from
peering_autonomoussystem pas
join
peeringdb_networkixlan pdbnil
on
pdbnil.ipaddr4 = any(pas.potential_internet_exchange_peering_sessions)
or
pdbnil.ipaddr6 = any(pas.potential_internet_exchange_peering_sessions)
where pas.asn = 812;
asnumber | asname | potential | ipv4 | ipv6 | ixname
----------+--------------+------------------------------------------------------------------+---------------+--------------------+-----------------
812 | Rogers Cable | {2001:504:12::14,198.32.134.32,2001:504:1a::34:29,206.108.34.29} | 198.32.134.32 | 2001:504:12::14 | Equinix Seattle
812 | Rogers Cable | {2001:504:12::14,198.32.134.32,2001:504:1a::34:29,206.108.34.29} | 206.108.34.29 | 2001:504:1a::34:29 | TorIX
(2 rows)
我想要的上述结果是看到 4 行,每行对应 potential
数组中的每个值。我相信连接中的 OR
至少可以部分实现这一点,但似乎没有。
最佳答案
您的加入条件有两个选项:
ANY
运算符:
peeringdb_networkixlan.ipaddr4
= ANY (peering_autonomoussystem.potential_internet_exchange_peering_session)
此版本可以在 peeringdb_networkixlan(ipaddr4)
上使用 b 树索引。
数组“包含”运算符:
ARRAY[peeringdb_networkixlan.ipaddr4]
<@ peering_autonomoussystem.potential_internet_exchange_peering_session
此版本可以在 peering_autonomoussystem(potential_internet_exchange_peering_session)
上使用 GIN 索引。
您可能想尝试两者,看看哪一个更适合您的情况。
一般来说,如果您想连接单个数组元素,最好不要使用数组。在这种情况下,通常最好对数据进行归一化。
关于arrays - 加入 inet[] 到 inet,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55894886/
我正在尝试连接两个表: peering_autonomoussystem.potential_internet_exchange_peering_sessions(包含 ipv4 或 ipv6 地址数
当询问给定 ip(inet 类型)是否在 inet 数组内时,我在 postgres 上遇到问题。我将逐步说明我在做什么。 首先,我创建了第一个表,它将包含要包含在 inet block 中的 IP。
我正在尝试获取我的 Elixir 项目的依赖项。我不知道 Hex 是否已关闭(今天早上我能够正常获取)。当我运行时 $ mix deps.get 我看到这个: Failed to fetch
我们在使用部署在 Glassfishv2.1 服务器上的 JAX-WS 堆栈为 WS 端点实现重新连接逻辑时发现了这个问题。我们在集群环境中部署 Web 服务。为了简化部署,我们使用 0.0.0.0
在 Ubuntu 16.04 中,我运行了 ifconfig 并在 inet addr:MY_IP 中看到了我的外部 IP。 我试图通过这些方式将它“挖掘”到一个变量中: ipa=$(ifconfig
我在地下室有一个小型 ubuntu 服务器,上面有几部自制电影。我想与我的家人分享这些视频。在我最幻想的梦想中,我会提供一个带有视频列表的网站,供您选择一个并观看。比方说,像 youtube 这样的东
我必须在 OMNeT++ 5.6.1 (Ubuntu 18.04.4) 中从 INET4 扩展 UdpBasicApp 模块并执行两个重写方法(初始化和 handleMessageWhenUp)。 这
什么地方适合表演inets:start() ? 在“applicationname_app”模块中? 在 applicationname_sup主管模块? 在从主管挂起的子进程中?\ 别的地方? (我
这个问题不太可能帮助任何 future 的访客;它仅与一个小地理区域、一个特定时刻或一个非常狭窄的情况相关,而这些情况通常不适用于互联网的全局受众。如需帮助使这个问题更广泛地适用,visit the
我刚刚写了这个片段: #include #include #include int main(void) { sockaddr_in self; hostent *he;
我需要在运行时创建一个节点,其参数与其他节点相似。为此,我在 ned 文件中创建了一个动态节点:- host_send4: meshnode { parameters:
我想将列的类型从 inet 更改为 text。所以,我执行: ALTER TABLE table ALTER COLUMN col TYPE text; 但后来我发现所有值都添加了掩码。例如:192.
#include #include #include #include #include #include #include #include #include using name
我已经启动并运行了 INET (AODV) 模拟的所有示例。我的网络由多个 AODV 路由器主机组成。 我的下一个任务是交换一些关于每个主机当前位置的自定义消息(将在一定时间后通过移动更新)。我找到的
在 httpc:request() 函数发出的 http 请求中,如何为客户端授权指定用户/密码? 最佳答案 我认为 httpc 模块没有为此提供便利。尽管如此,实现起来并不难(如果我们谈论的是基本身
关闭。这个问题需要details or clarity .它目前不接受答案。 想改进这个问题吗? 通过 editing this post 添加细节并澄清问题. 关闭 8 年前。 Improve t
我正在使用 Erlang,需要发出高效的 HTTP 请求。 Erlang/OTP 当前的“标准”HTTP 客户端是什么? 是 inets 或 ibrowse 还是其他什么东西? 任何建议或指示表示赞赏
我想构建一个用户应用程序,它将通过 INET 套接字系列与内核部分进行交互。 JAVA 支持 INET 套接字系列吗? 最佳答案 是的,Java 支持 INET 希望以下节目对您有所帮助 import
安装 Erlang Web 1.3 并以交互模式启动后,我在日志中收到以下错误: Failed to start service: "config/inets.conf" due to: "httpd
我想使用 otp 的 httpc:request/4; 从 cowboy 发送 http post application:start(inets) 返回一个错误: error,{"no such f
我是一名优秀的程序员,十分优秀!