我有两个表产品和相同的产品
products
---------------------
id pro_title price seller
sameProducts
----------------------
id pro_id price seller
pro_id与产品表中的ID相同 - id。
如果产品是现有产品,卖方会插入产品,然后在同一产品表中输入详细信息,但如果是新产品,则在产品表中输入。我想根据同一个pro_id的两个表中的最低价格获得卖家名称。
答案 0 :(得分:0)
select seller from(
select `id`, price, seller from products
where id = :id
union
select pro_id as `id`, price, seller from sameProducts
where pro_id = :id
) order by price asc limit 1
将从任一表中具有给定ID的价格最低的行返回卖家名称。
但是,假设每个表中给定id的名称相同,那么它就不会出现这种情况。真的有意义寻找价格最低的那个,因为它们都有相同的名称。但是你问这个问题就在这里。
答案 1 :(得分:0)
select pro_title , seller,MIN(price) from(
select * from products
union
select products.id as id,pro_title,products.price as price, products.seller as seller from products LEFT JOIN sameProducts where id = pro_id
) GROUP BY pro_title
答案 2 :(得分:0)
我想你想用CASE做这件事:
SELECT p.id,
CASE WHEN (p.price < sp.price OR sp.price IS NULL) THEN p.seller ELSE sp.seller END AS slr
FROM products p
LEFT JOIN sameproducts sp ON p.id = sp.pro_id