我只是在我的SQL查询中从我的MS SQL Server中获取数据。
为了简化,我说有一张销售表和一张客户表。它们每个都有一个相应的userId,我可以用它来连接表格。
我希望首先从销售表中SELECT
说价格等于10,然后将其加入userId,以便从客户表中访问名称和地址等。< / p>
我应该以哪种顺序构建查询?我需要某种子查询或我该怎么办?
我尝试过这样的事情
SELECT *
FROM Sales
WHERE price = 10
INNER JOIN Customers
ON Sales.userId = Customers.userId;
毋庸置疑,这是非常简化的,而不是我的数据库架构,但它简单地解释了我的问题。 有什么建议 ?我在这里不知所措。
答案 0 :(得分:2)
SELECT
具有其组件的特定顺序
简单形式是:
所以:很可能将你的陈述改为
就足够了SELECT *
FROM Sales
INNER JOIN Customers ON Sales.userId = Customers.userId
WHERE price = 10;
答案 1 :(得分:1)
ViewConfiguration.getLongPressTimeout()
子句必须遵循连接:
WHERE
这就是SQL语法的工作方式。您似乎试图按照您认为应该应用的顺序放置子句,但SQL是声明性语言,而不是程序性语言 - 您定义了要发生的内容,而不是它将如何完成。
你也可以这样写:
SELECT * FROM Sales
INNER JOIN Customers
ON Sales.userId = Customers.userId
WHERE price = 10
这似乎表示操作发生的顺序不同,但它在逻辑上与第一个查询相同,在任何一种情况下,数据库引擎都可以确定以任何顺序执行连接和过滤操作,如只要结果相同。
答案 2 :(得分:0)
对我来说听起来不错,你运行了查询并检查了吗?
SELECT s.*, c.*
FROM Sales s
INNER JOIN Customers c
ON s.userId = c.userId;
WHERE s.price = 10