[英]SQL UPDATE statement based on number of rows returned from SELECT subquery
[英]SQL Subquery - executing a select statement for every “ID” returned in a row
假設我有兩個表,一個person
表和一個orders
表。 person
表尤其包括person
personID
字段和name
字段。 orders
表包含一個orderID
字段等。 我想返回有關一個或多個人的信息,但除此之外,我想使用personID查詢其他信息,並在每一行中返回。 例如:
personID name + orderID
120 John 5000
我現在的查詢如下:
SELECT p.personID, p.name
FROM person p
WHERE p.name = "John"
我想返回匹配該名稱查詢的人員列表,但對於每個結果,還請使用personID查找介於兩個日期之間的特定訂單(一個訂單),選中“活動”標志,等等,或者如果該訂單不存在,則為orderID返回null。
假設指定的人在給定的日期和標志之間只有1個訂單 。
SELECT p.personID, p.name, (Select OrderId From Orders o Where o.PersonId = p.personID and o.Date Between Value1 And Value2 And o.FlagColumn = 'Active') As OrderId
FROM Person p
WHERE p.name = "John"
您也可以為此JOIN
。
SELECT p.personID, p.name, o.OrderId
FROM Person p
JOIN Orders o On p.PersonId = o.PersonId
WHERE p.name = "John" And
o.Date Between Value1 And Value2 And
o.FlagColumn = 'Active'
嘗試這個
Select p.*
From Person p
JOIN Orders o
ON p.PersonID = o.PersonID AND
(o.OrderDate BETWEEN '2013-07-01' AND '2013-07-30') AND
(o.IsActive = 1)
WHERE p.Name = 'John'
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.