我有一张桌子可以容纳我的产品和服务。我希望将每个产品与我的服务相匹配,而不是根据我的产品为我的服务分配基本价格。
我的表格如下
ID TypeID Title
=========================
1 1 Product1
2 1 Product2
3 1 Product3
4 2 Service1
5 2 Service2
6 2 Service3
我想让这张桌子回来。
ProductID ServiceID ProductTitle ServiceTitle
=========================================================
1 4 Product1 Service1
1 5 Product1 Service2
1 6 Product1 Service3
2 4 Product2 Service1
2 5 Product2 Service2
2 6 Product2 Service3
3 4 Product3 Service1
3 5 Product3 Service2
3 6 Product3 Service3
我如何使用Ms SQL 2008?
答案 0 :(得分:1)
试试这个:
SELECT
P.ID ProductID, S.ID ServiceID, P.Title ProductTitle, S.Title ServiceTitle
FROM
(SELECT ID, Title
FROM tbl
WHERE TypeID = 1) P
CROSS JOIN
(SELECT ID, Title
FROM tbl
WHERE TypeID = 2) S
ORDER BY P.ID, S.ID
答案 1 :(得分:1)
CROSS JOIN
返回两个表格的笛卡尔积。
SELECT a.ID ProductID,
a.Title ProductTitle,
b.ID ServiceID,
b.Title ServiceTitle
FROM tableName a
CROSS JOIN tableName b
WHERE a.TypeID = 1 AND
b.TypeID = 2
ORDER BY a.ID, b.ID
答案 2 :(得分:0)
以下查询可能对您有所帮助:
SELECT Product.ProductID , Product.ProductTitle , ProductType.Title
FROM dbo.Product INNER JOIN dbo.ProductType
ON Product.ProductTypeID = ProductType.ID