产品表
products
productid | sellerid | productprice
sameproduct table
sameproduct
productid | sellerid | productprice
卖家表
sellers
sellerid | sellername | selleraddress
卖方是表格产品和同类产品的外键。 我想显示特定产品的卖家详细信息,这些产品可能同时存在于表格产品和同一产品中。
答案 0 :(得分:3)
这可能会帮助你。
SELECT *
FROM sellers
INNER JOIN sameproduct ON sellers.sellerid = sameproduct.sellerid
INNER JOIN products ON sellers.sellerid = products.sellerid
答案 1 :(得分:0)
尝试类似:
select sellers.* from products
inner join sellers on products.sellerid =sellers.sellerid
where productid=@productid
UNION
select sellers.* from sameproduct
inner join sellers on sameproduct.sellerid =sellers.sellerid
where productid=@productid
答案 2 :(得分:0)
你可以联合两个表,之后做一些事情:
SELECT *
FROM (
SELECT * FROM products
UNION ALL SELECT * FROM sameproduct
) AS p
JOIN sellers AS s ON (s.sellerid = p.sellerid)
WHERE productid = @productid
答案 3 :(得分:0)
您可以JOIN
products
和sellers
表来获取所需的输出,例如:
SELECT s.sellerid, s.sellername, s.selleraddress
FROM sellers JOIN products p ON s.sellerid = p.sellerid
WHERE p.productid = ?
请注意,如果产品有多个卖家,它将返回多行。
答案 4 :(得分:0)
使用MySQL连接三个名为products
,sameproduct
和sellers
的表:
select s.*
from products p
inner join sameproduct ps on p.sellerid = ps.sellerid
inner join sellers s on ps.sellerid = s.sellerid
where productid =in_product_id
答案 5 :(得分:0)
我想这就是你需要的?您将卖家表连接到两个表,并仅选择在两个产品表中的一个中找到productid的记录。
declare @productid int
set @productid = 1
select s.*, p.productid, sp.productid
from sellers s
left join product p
on s.sellerid = p.sellerid
left join sameproduct sp
on s.sellerid = sp.sellerid
where p.productid = @productid
or sp.productid = @productid
答案 6 :(得分:0)
您想要显示产品的卖家,因此您需要从卖家表中选择(不加入)。如果您愿意,可以在EXISTS
子句(或select *
from sellers
where sellerid in (select sellerid from products where productid = 12345)
or sellerid in (select sellerid from sameproduct where productid = 12345);
子句中)获取产品的卖家ID。
select *
from sellers
where sellerid in (select sellerid from products where productid = 12345
union all
select sellerid from sameproduct where productid = 12345);
或
<thead>
尽管如此,制作产品和同一产品可能比较好。