如何将 SQL 查询与另一个表链接?

Posted

技术标签:

【中文标题】如何将 SQL 查询与另一个表链接?【英文标题】:How to link a SQL query with another table? 【发布时间】:2020-08-04 06:46:35 【问题描述】:

我有一个查询返回状态缩写和查询的计数

 SELECT state, COUNT( state )
FROM Stripe_Transactions
WHERE (
state <> "0"
)
AND (
state IS NOT NULL
)
AND (
state <> " "
)
AND (
UPPER( Usertype ) = "PARENT"
)
GROUP BY state
LIMIT 0 , 30

现在,我想将此查询结果与另一个表 STATES 进行匹配,其中我有完整的 States.Columns of States 表是 -stateID、StateName。 当前输出

【问题讨论】:

见meta.***.com/questions/333952/… 找不到答案 【参考方案1】:

我将假设您的MATCH 在这里表示JOINSQL 中。

如果是这种情况,您可以将代码放在临时表中,然后与您的 STATES 表左连接。

事实上,你可以输入一个子查询和left_join,但是,我假设你是一个新人,所以会以一种简单的方式来做。

SELECT state, COUNT( state )

INTO #a         --temporary table (I'm using SQL Server)

FROM Stripe_Transactions
WHERE (state <> "0")
  AND (state IS NOT NULL)
  AND (state <> " ")
  AND (UPPER(Usertype) = "PARENT")
GROUP BY state
LIMIT 0 , 30

这可能是你的state

state_id  state_name
AK        Alaska
AL        Alabama
MS        Mississippi
NM        New Mexico

这是你的CURRENT_OUTPUT,它被放在一个名为#a的临时表中:

state_id    your_count
AK          15
AL          20
MS          21
NM          100

试试这个:

select state.state_id, 
       state.stateName, 
       #a.your_count  
from state
left join    
#a
on state.state_id = #a.state_id

结果:

state_id     state_name        your_count
AK           Alaska            15
AL           Alabama           20
MS           Mississippi       21
NM           New Mexico        100

【讨论】:

嘿,谢谢!但它给了我一个错误`#1064 - 你的 SQL 语法有错误;检查与您的 mysql 服务器版本相对应的手册,以在第 4 行的“FROM Stripe_Transactions WHERE (state "0") AND (state IS NOT" 附近使用正确的语法` @DakshAngaraj,嘿,因为我使用的是 SQL Server,所以会有一些小的差异。我想问题出在temporary table,也许你应该检查这个文档mysqltutorial.org/mysql-temporary-table

以上是关于如何将 SQL 查询与另一个表链接?的主要内容,如果未能解决你的问题,请参考以下文章

sql三表链接查询

sql多表链接之三表连接查询

SQl Server 表链接查询

SQL server基础知识(表操作数据约束多表链接查询)

SQL多表链接查询、嵌入SELECT语句的子查询技术

如何将 CDN 样式表链接导入 Cypress 组件测试运行程序