添加值不在其中的表 - Oracle SQL Developer

问题描述 投票:0回答:1

我正在尝试提取美国和世界各地的商店数据。

select
    s.store,
    s.store_name,
    s.store_city,
    s.state,
    st.description as "STATE_DESC",
    s.country_id,
    c.country_desc
from
    store s,
    country c
left join state st on st.state = s.state
where c.country_id = s.country_id
and s.store in ('123456', '654321')

我得到:

ORA-00904: "S"."STATE": invalid identifier
00904. 00000 -  "%s: invalid identifier"
*Cause:    
*Action:
Error at Line: 13 Column: 34

如果我定期加入州表,它只会提取美国的位置,并且不会在州或州描述列中显示 NULL 值。

如何加入状态表?

store
栏目:
店铺 商店名称 商店_城市 状态 COUNTRY_ID

state
栏目:
状态 描述

我想要:

商店 STORE_NAME STORE_CITY 状态 STATE_DESC COUNTRY_ID COUNTRY_DESC
123456 达拉斯店 达拉斯 TX 德克萨斯州 美国 美国
654321 德国专卖店 柏林 德国

我最终做了一个

VLOOKUP
在 Excel 中添加状态描述。

sql join left-join oracle-sqldeveloper sql-null
1个回答
0
投票

Aly S 没有使用隐式逗号分隔方式连接表,而是使用“现代、显式 JOIN 语法”连接所有表。

select
 s.store,
 s.store_name,
 s.store_city,
 s.state,
 st.description as "STATE_DESC",
 s.country_id,
 c.country_desc
from store s
left join state st
 on s.state = st.state
join country c
 on s.country_id = c.country_id
where s.store in ('123456', '654321')
© www.soinside.com 2019 - 2024. All rights reserved.