我有3张桌子。
PK table
- company
FK table
- staff
- machines
Table Data:
Company:
ID | NAME
1 | FLY RESORTS
Staff:
ID(fk) | NAME
1 | John Doe
1 | Johny Doe
Machines:
ID(fk) | NAME
1 | Bulldozer
1 | Helicopter
1 | Lorry
我写了PDO选择计数代码:
$keyword = "%" . $_GET["keyword"] . "%" ;
$sql = "SELECT count(*) FROM `company` INNER JOIN staff ON staff.ID = company.ID INNER JOIN machines ON machines.ID = company.ID WHERE (comp.name like '$keyword' or machines.name like '$keyword' or staff.name like '$keyword')";
$result = $conn->prepare($sql);
$result->execute();
$numrows = $result->fetchColumn();
当我将$keyword
设置为'fly'
时,它会返回多个具有相同公司名称的结果计数/行。
我的代码有问题吗?感谢
答案 0 :(得分:1)
因为您加入了,所以您将重复同一家公司,因为它与员工或机器相关联。如果您只想计算公司数量,可以使用
SELECT COUNT(DISTINCT company.ID) FROM ...
答案 1 :(得分:1)