Php 如何进行有效的sql查询?

Php 如何进行有效的sql查询?,php,mysql,relational-database,Php,Mysql,Relational Database,下表如下: 表用户: User_Id = 1,2,3; User_Name: A,B,C; 表业务: Business_Id = 1,2,3; Business_Name: A,B,C; Business_Detail: Details_A, Details_b, Details_c; 表格访问: Visit_Id = 1,2,3,4,5,6: User_Id = 1,1,1,2,1,1; Business_Id = 1,1,1,2,2,3; 我需要创建一个函数,返回访问列表和用户访问的

下表如下:

表用户:

User_Id = 1,2,3;
User_Name: A,B,C;
表业务:

Business_Id = 1,2,3;
Business_Name: A,B,C;
Business_Detail: Details_A, Details_b, Details_c; 
表格访问:

Visit_Id = 1,2,3,4,5,6:
User_Id = 1,1,1,2,1,1;
Business_Id = 1,1,1,2,2,3;
我需要创建一个函数,返回访问列表和用户访问的业务信息。到目前为止,我已经得到了用户访问过的商店的列表,但不知道从那里去哪里

 function visit_count($user_id=1){
     global $database;
     $sql = "SELECT * FROM visits WHERE user_id ='{$user_id}' LIMIT 0 , 30";
     $result_set = $database->query($sql);
     $visits = mysql_fetch_array($result_set);

     //Get the unique ids of the business

    //Run another query that has the business information

    //combing both queries.

 }
谢谢你们的快速反应。这正是我所寻找的,我想我正在寻找的查询返回一个对象,如下所示:

Object:
  - Business:
     - Business_id;
     - Business_name;
     - Visit_counts;
  - Business:
     - Business_id;
     - Business_name;
     - Visit_counts;
因此,基本上,对象将具有业务信息和用户访问商店的次数

非常感谢您提供的所有帮助

您需要加入:

SELECT v.*, b.Business_Name, b.Business_Detail FROM visits as v 
JOIN Business as b on b.Business_Id = v.Business_Id
WHERE v.user_id ='{$user_id}' LIMIT 0 , 30
另外-使用mysqli并确保您是

编辑


按照@KHMKShore的建议使用预先准备好的语句。

首先,您应该了解,这是当前在PHP中使用sql的最佳实践

听起来你需要的是连接

$sql = "SELECT * FROM visits v
        JOIN business b ON b.Business_Id = v.Business_Id
        JOIN user u ON u.Business_Id = v.Business_Id
        WHERE v.user_id ='{$user_id}' LIMIT 0 , 30";

为每个用户尝试此SQL

尝试以下SQL代码:

SELECT business.business_id, business.business_name, COUNT(business.business_id) AS visit_counts
FROM business 
  LEFT JOIN visits
  ON business.business_id = visits.business_id
GROUP BY business_id, user_id
结果:

business_id |business_name |visit_counts
1            A              3
2            B              1
2            B              1
3            C              1

既然这里已经有很多答案了,我想给大家一个我认为会对你们有很大帮助的答案。它纯粹是关于SQL的,从基础到中间。它充满了示例,包含了构建表等所需的所有代码,因此您可以自己实际运行和实验。帮你自己一个忙,读一读:)
business_id |business_name |visit_counts
1            A              3
2            B              1
2            B              1
3            C              1