0

以下に表を示します。

テーブル ユーザー:

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;

したがって、基本的にオブジェクトには、ビジネス情報と、ユーザーが店舗を訪れた回数が含まれます。

すべての助けに感謝します

4

4 に答える 4

0

次の 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
于 2013-09-26T23:54:56.563 に答える
0

まず、準備済みステートメントを調べる必要があります。これは、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";
于 2013-09-26T22:19:59.590 に答える
0
SELECT Visits.* , Business.Business_Name, Business.Business_Details
FROM Visits 
LEFT JOIN Business on Business.Business_Id  = Visits.Business_Id 
WHERE Visits.User_Id =1

各ユーザーに対してこの SQL を試してください

于 2013-09-26T22:22:43.820 に答える