Php 如果第二个表中至少有4条记录,请从两个表中选择记录
我有2个表,我想根据以下条件获取数据: 表1有多个产品记录。 表2包含产品的各种大小选项,不能多于或少于4行。 现在,我想获取那些没有条目或没有精确4条条目的产品 表结构如下: 表1 表2 现在查询将获取ID为2和3的产品,因为它们的记录少于4,并且没有记录 我使用下面的查询获取表2中没有记录的产品Php 如果第二个表中至少有4条记录,请从两个表中选择记录,php,mysql,mysqli,Php,Mysql,Mysqli,我有2个表,我想根据以下条件获取数据: 表1有多个产品记录。 表2包含产品的各种大小选项,不能多于或少于4行。 现在,我想获取那些没有条目或没有精确4条条目的产品 表结构如下: 表1 表2 现在查询将获取ID为2和3的产品,因为它们的记录少于4,并且没有记录 我使用下面的查询获取表2中没有记录的产品 所以,您不想要表2中记录少于4条的数据,或者什么?不,我想要记录少于4条的数据。为什么添加group by?是否需要选择所有列?我不能只获取必需的列吗?您可以只列出必需的列。但是,请确保SELECT
所以,您不想要表2中记录少于4条的数据,或者什么?不,我想要记录少于4条的数据。为什么添加group by?是否需要选择所有列?我不能只获取必需的列吗?您可以只列出必需的列。但是,请确保SELECT中的列表与BY组中的列表相同。这也会起作用:从表1中选择p.id、p.name、p.color、p.price、countt.*p.id左连接表2 t ON p.id=t.pid GROUP BY p.id、p.name、p.color、p.price have countt.*<4我有一个错误1064-您的SQL语法有一个错误;检查与您的MySQL服务器版本对应的手册,以了解在第1行的“*FROM Table1`p LEFT JOIN Table2 t ON p.id=t.pid GROUP BY p.”附近使用的正确语法`
id name color price instock
----------------------------------
1 rice white 1200 1
2 shoe brown 2500 1
3 belt red 5200 1
id size pid
-----------------
1 5 1
2 10 1
3 4 1
4 15 1
5 7 2
SELECT p.* FROM `Table1` p LEFT JOIN `Table2` t ON p.id = t.pid WHERE
t.pid IS NULL
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