2017-05-10 113 views
0

我正在尝试从多个记录的数据库中获取结果。具有选择条件的SQL搜索查询

Table 1 Table 2
UserID UserName DOB RegistrationID CourseID UserID u1 UA 1/1/1900 1 C1 u1 u2 UB 1/2/1900 2 C2 u3 u3 UC 1/3/1900 3 C4 u2 u4 UD 1/4/1900 4 C3 u3

我的搜索条件会

  • U1-Q3
  • U2-Q1
  • U3-Q2

的每个用户的结果应只取其相关d当然值..

`Where t1.userid = u1 and t2.courseid = q3.. ` 

我需要获取这个超过100记录组合 像

where t1.userid = u1 and t2.courseid = c1 and t1.userid = u2 and t2.courseid = c4 and t1.userid = u1 and t2.courseid = c3 等....

+1

添加一些示例表数据和预期的结果 - 以及格式化文本。 – jarlh

+1

你的JOIN需要一个ON子句。 – jarlh

+0

将你的条件插入一个临时表,然后加入他们 – Milney

回答

0

我asume您正在寻找这样的连接查询,否则请提供更多信息:

SELECT UserDetails 
FROM Users t1 
LEFT JOIN Courses t2 ON t2.UserId = t1.UserId 

要使此查询成功运行,您需要一个外键“课程”表中的UserId。

而且你可以有一个外键CourseId在“用户”表格,并使用此查询:

SELECT * 
FROM Users t1 
LEFT JOIN Courses t2 ON t2.CourseId = t1.CourseId 

连接子句用于行从两个或多个表合并,基于以下两者之间的相关列他们。

Quick explanation of Joins

Here you can find and test on an example

如果您有关于如何建立外键的问题看这个部分:

Foreign Keys

+0

我已成功加入如下表格..但是需要条件/连接类型才能过滤仅针对一个国家/地区的订单 选择[Order],[O] .CustomerID作为[CustomerID] ], [Oi] .Odederid as [OIOrderID],OI.ProductID,P.ProductName,P.ID AS [ProductIDa],P.IsDiscontinued, s.city,s.country from [order] o inner join [orderitem] oi on o.id = oi.orderid inner join [product] p on oi.productid = p.id inner join [supplier] s on p.supplierid = s.id –