代码之家  ›  专栏  ›  技术社区  ›  shorif2000

sql从列表中选择1项

sql
  •  2
  • shorif2000  · 技术社区  · 7 年前

    select t1.name 
    from ccp.ENTITIES t1
    
    Non
    Albania
    Australia
    China
    Czech Republic
    Egypt
    Germany
    Greece
    Group
    Hungary
    India
    Ireland
    Italy
    Luxembourg
    Malaysia
    Malta
    Netherlands
    Portugal
    Romania
    Spain
    Turkey
    UK
    US
    

    这将给我一个名单,其中我想从另一个表1行

    v_networks_by_lm 此表保存列为的记录 t1.name network . 我希望列表中的每一项只使用一次列网络。 由lm提供的网络 可以容纳许多 t1.名称

    entity  name   
    a   Spain
    b   Spain
    c   Spain
    d   Spain
    e   Spain
    f   Spain
    g   Spain
    h   Germany
    i   Germany
    j   Germany
    k   Germany
    l   Germany
    m   Germany
    n   Germany
    o   Germany
    p   UK
    q   Germany
    r   Spain
    s   Spain
    t   Portugal
    u   Portugal
    v   Portugal
    q   Portugal
    

    根据上述数据 由lm提供的网络 ENTITIES 因为它可以是动态的

    2 回复  |  直到 7 年前
        1
  •  3
  •   Gordon Linoff    7 年前

    我认为聚合是你想要的:

    SELECT MAX(n.network) as network, e.name
    FROM ccp.ENTITIES e JOIN
         ccp.v_networks_by_lm n
         ON n.name = e.name
    GROUP BY e.name;
    
        2
  •  1
  •   user1694674    7 年前

    听起来像是希望子查询从表中获取name的单个实例,然后对实体进行连接。

    Select sub.one_of_entity_values, sub.name 
    from ccp.entities e 
    inner join (
        select max(entity) as one_of_entity_values, name
        from v_networks_by_lm
        group by name) sub on e.name  = sub.name