如果第二个表中至少有4个记录,则从两个表中选择记录

时间:2016-02-01 17:03:51

标签: php mysql mysqli

我有2个表,我想根据以下条件获取数据:

  • Table1有多个产品记录。
  • 表2包含产品的各种尺寸选项,不能有多于或少于4行。
  

现在,我想获取那些没有条目或者没有完整条目的产品。

表结构如下:

表1

id   name  color  price   instock
----------------------------------
 1   rice   white  1200    1
 2   shoe   brown  2500    1
 3   belt   red    5200    1

表2

  id   size   pid
 -----------------
  1     5     1
  2     10    1
  3     4     1 
  4     15    1
  5     7     2

现在,Query将获取ID为2和3的产品,因为它们的记录小于4且没有记录。

我使用以下查询来获取Table2

中没有记录的产品
SELECT p.* FROM `Table1` p LEFT JOIN `Table2` t ON p.id = t.pid  WHERE 
t.pid IS NULL

1 个答案:

答案 0 :(得分:1)

SELECT p.id, p.name, p.color, p.price, p.instock, count(t.*) 
FROM `Table1` p 
LEFT JOIN `Table2` t 
ON p.id = t.pid  
GROUP BY p.id, p.name, p.color, p.price, p.instock
HAVING count(t.*) < 4