使用php和mysql查询多个表

bn31dyow  于 2021-07-24  发布在  Java
关注(0)|答案(1)|浏览(295)

我目前正在开发一个系统。我的table就是这样的like:-
出售table:-

ID     |     avatar     |   ident
-------------------------------------
1     |    img/photo11 |   CCS7771
2     |    img/photo32 |   INL0987
3     |    img/photo32 |   INL0987
4     |    img/photo6  |   URS8827
5     |    img/photo32 |   INL0987
6     |    img/photo9  |   NSU8837
7     |    img/photo3  |   PPP9998

荣誉table:-

ID     |     sale_id   |   ident_id
-------------------------------------
1      |       1        |   INL0987
2      |       4        |   INL0987
3      |       7        |   INL0987
4      |       1        |   KKU8837
5      |       1        |   URS8827
6      |       4        |   SHD8837

所以我有一个like系统,当用户按like按钮到表行时,它存储 sales.id 以及 sales.ident 到另一个名为 kudos ,如上图所示。
我想问一下有多少人对每一个职位都给予了表扬。您可以在上面的表中看到,示例:sales.id 1从inl0987、kku8837和urs8827中获得了3个荣誉。我试过几种不同的方法,但似乎找不到解决办法。这就是我尝试过的:

/* $resultSet = $mysqli->query("SELECT kudos.sale_id as makesName, sales.ident AS modelsName from kudos,sales where kudos.sale_id = '42' AND kudos.ident_id = sales.ident"); */
     $resultSet = $mysqli->query("SELECT kudos.sale_id as TheID, sales.ident AS TheIdent from kudos,sales where kudos.sale_id = '42' AND sales.id = kudos.sale_id");

     echo $resultSet->num_rows;

     while ($rows = $resultSet->fetch_assoc()) {
         $iid = $rows['TheID'];
         $iident = $rows['TheIdent'];

         echo "<br><br>TheID: $iid";
         echo "<br>TheIdent: $iident";
     }

有人能帮帮我吗?我能找出我做错了什么。

eqqqjvef

eqqqjvef1#

我想问一下有多少人对每一个职位都给予了表扬
我想你只是想:

select sale_id, count(*) no_kudos
from kudos
group by sale_id

如果你还想包括 sale_id 没有对手的 kudos ,则可以使用相关子查询:

select id, (select count(*) from kudos k where k.sale_id = s.id) no_kudos
from sales s

相关问题