gpt4 book ai didi

mysql - 有一个带有连接和联合的 select 语句,但无法让它工作

转载 作者:行者123 更新时间:2023-11-29 07:26:31 26 4
gpt4 key购买 nike

所以是移动电话问题。有一个列出所有源和目标邻接关系的邻接表。因此目标单元格可以是外部/边界单元格或普通单元格。所以首先我想检查目标是否是普通单元格,如果不是,我想从外部单元格表加载外部单元格列表。所以表是c_adjacent_cell_4g,普通单元格表是c_ecell,目标单元格可以来自c_ecell表或来自c_externaleutrancellfdd 表。请注意,源单元格始终是普通单元格,目标单元格可以是普通单元格或外部单元格。因此,对于我在 select 语句中相当糟糕的尝试。

SELECT INT_ID, int_id 
FROM (
SELECT adj.int_id, if(src.earfcnDl = tgt.earfcnDl, 'ADJS', 'ADJI') AS TYPE
FROM C_ADJACENT_CELL_4G adj
JOIN C_ECELL src ON (src.int_id = adj.src_cell_int_id)
JOIN C_ECELL tgt ON (tgt.int_id = adj.adj_cell_int_id)
LEFT JOIN C_EXTERNALEUTRANCELLFDD tgt ON (tgt.int_id = adj.adj_cell_int_id)
WHERE src.earfcndl IS NOT NULL AND tgt.earfcndl IS NOT NULL) DATA;

有没有可能我应该使用联合语句而不是左连接。谢谢。

最佳答案

我们可以使用 UNION ALL 集合运算符,将来自 C_ECELLC_EXTERNALEUTRANCELLFDD 的行组合成一个集合,作为内联 View ,然后加入组合集:

SELECT ...

FROM C_ADJACENT_CELL_4G adj
JOIN (
SELECT 'i' AS src
, intl.int_id
, intl.earfcndl
FROM C_ECELL int
UNION ALL
SELECT 'e' AS src
, extl.int_id
, extl.earfcndl
FROM C_EXTERNALEUTRANCELLFDD extl
) tgt
ON tgt.int_id = ...

如果 intlextl 中出现相同的 int_id 值,则连接操作将匹配这两行。


但我会避免使用 UNION ALL 方法。而是对两个目标表进行外部连接。然后检查(在 SELECT 列表中的表达式中)以确定我们是否在 C_ECELL 中找到匹配项。如果没有,我们一定在 C_EXTERNALEUTRANCELLFDD 中找到了匹配项。

沿着这些线的东西:

SELECT adj.int_id     AS _adj__int_id
, src.int_id AS _src__int_id
, tgt.int_id AS _tgt__int_id
, ext.int_id AS _ext__int_id

, src.earfcndl AS _src__earfcndl
, tgt.earfcndl AS _tgt__earfcndl
, ext.earfcndl AS _ext__earfcndl

, IF(adj.adj_cell_int_id = tgt.int_id, 'internal', 'external')

FROM C_ADJACENT_CELL_4G adj

JOIN C_ECELL src
ON src.int_id = adj.src_cell_int_id

LEFT
JOIN C_ECELL tgt
ON tgt.int_id = adj.adj_cell_int_id

LEFT
JOIN C_EXTERNALEUTRANCELLFDD ext
ON ext.int_id = adj.adj_cell_int_id

WHERE src.earfcndl IS NOT NULL
AND ( tgt.earfcndl IS NOT NULL OR ext.earfcndl IS NOT NULL )

(WHERE 子句中的条件保证我们在 tgtext 中找到匹配的行;如果两者都没有匹配的行,则两个外部连接表的 earfcndl 列将为 NULL。)

关于mysql - 有一个带有连接和联合的 select 语句,但无法让它工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53401498/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com