Jes*_*per 11 sql sql-server select
我知道这可能是非常基本的,但我必须在他们在学校教这个时睡觉:)
如果我有两个表,例如:
表1(产品)
id
name
price
agentid
Run Code Online (Sandbox Code Playgroud)
表2(代理人)
userid
name
email
Run Code Online (Sandbox Code Playgroud)
如何从包含代理名称和电子邮件的产品中获取结果集,这意味着 products.agentid = agent.userid
谢谢你的快速答案,但我忘记了SELECT WHERE price < 100.我如何加入例如products.agentid = agent.userid
Mos*_*cho 23
编辑支持价格过滤
您可以使用该INNER JOIN子句来连接这些表.它是这样做的:
select p.id, p.name as ProductName, a.userid, a.name as AgentName
from products p
inner join agents a on a.userid = p.agentid
where p.price < 100
Run Code Online (Sandbox Code Playgroud)
另一种方法是通过一个WHERE条款:
select p.id, p.name as ProductName, a.userid, a.name as AgentName
from products p, agents a
where a.userid = p.agentid and p.price < 100
Run Code Online (Sandbox Code Playgroud)
请注意,在第二种情况下,您将从两个表中生成所有行的自然产品,然后过滤结果.在第一种情况下,您在同一步骤中加入时直接过滤结果.DBMS将了解您的意图(无论您选择何种方式解决此问题)并以最快的方式处理它.
这是一个非常简陋的问题INNER JOIN:
SELECT
products.name AS productname,
price,
agent.name AS agentname
email
FROM
products
INNER JOIN agent ON products.agentid = agent.userid
Run Code Online (Sandbox Code Playgroud)
我建议您查看基本JOIN语法和概念.这里是微软文档的链接,虽然你上面提到的是标准的SQL.
请注意,INNER JOIN此处假设每个产品都具有agentid非NULL 的关联.如果有NULL agentid中products,使用LEFT OUTER JOIN而不是无代理返回连产品.
| 归档时间: |
|
| 查看次数: |
66667 次 |
| 最近记录: |