1

如何在三个表之间连接,例如我有三个表 productoption、productsize 和 price 并且 t3 没有主键,但问题是 productsize tbl 没有主键

产品选项 内连接 产品大小 内连接 价格

select * from Prices
select * from Product
select * from ProductOption
select * from ProductSize

select PriceFor, SourceID, MainPrice 
from Prices 
where PriceFor = 2 
  and SourceID in (select ProductOptionID from ProductOption where ProductId=7)
select * from Product
select ProductID, ProductName +' - '+ Convert(varchar(5),ProductID) as C
from Product

need inner join btw productoption > productsize and productoption > price
4

1 回答 1

5

缺少主键并不会阻止您进行联接。联接可以是您选择的任何列。以下语法将连接 3 个表

SELECT A.*, B.*, C.*
FROM
   A
   INNER JOIN
   B
   INNER JOIN
   C
   ON B.Col1 = C.Col2
   ON A.Co3 = B.Col4

但是,如果您没有涵盖连接中使用的列的索引,则性能可能不好。我想你的问题是如何加入 3 张桌子?请注意,“ON”的顺序是嵌套的,从内到外。表的顺序(在 ON 条件下)与它们在初始部分连接语句中出现的顺序相同。可能会令人困惑

于 2013-04-19T12:56:53.960 回答