MySQL用一个查询选择多个表

时间:2015-07-17 07:30:32

标签: mysql sql select

我有两个MySQL表:

  • tbl_product:product_id,product_name,update_time,sale
  • tbl_child_product:child_id,child_name,child_price,product_id

如何选择sale ='1'的所有产品,按update_time排序,每个产品的最低价格(在tbl_child_product表中的child_price中存储)只有一个查询?

谢谢!

3 个答案:

答案 0 :(得分:1)

您可以将两个表的内部联接用作:

Select p.product_id, p.product_name, min(c.child_price), p.update_time
from tbl_product p inner join tbl_child_product c
on p.product_id = c.product_id
group by p.product_id
having sale='1'
order by p.update_time

根据问题更新了答案:使用having sale='1'过滤group by的结果

答案 1 :(得分:1)

您可以在jointbl_product上的汇总查询之间tbl_child_product

SELECT   p.product_id, p.product_name, c.lowest_price
FROM     tbl_product p
JOIN     (SELECT   product_id, MIN(child_price) lowest_price
          FROM     tbl_child_product
          GROUP BY product_id) c ON p.product_id = c.product_id
ORDER BY p.update_time

答案 2 :(得分:0)

可能是UNION子句会帮助你。

(SELECT * from tbl_product where product_id ='NULL') 联盟 (SELECT * from tbl_child_product其中child_id ='NUll')

等所有值。