0

私は、ユーザーが独自のイベントテーブルと招待イベントテーブルを持っている単純なmysqlデータベースを持っています。

User-->>Own events (user_id is foreign key )
User and Own events-->>Invited Events(user_id is foreign key, event id is foreign key)

ある数に等しいところOWN EVENTから詳細を取得したいInvited Eventsuser_id

例:

ここに画像の説明を入力してください

私は試してみます:

$user_id = $_POST["user_id"];
$stmt = $mysqli->query("SELECT A1.event_id,A1.root_folder,A1.event_name,A1.date,A1.location,A2.user_id FROM OWN_EVENTS A1, INVITED_EVENTS A2 WHERE A2.user_id=$user_id");

$rows = array();
while($r = mysqli_fetch_assoc($stmt)) {
    $rows[]=$r;
}

これにより、(1行の)イベントの詳細が表示されるはずですevent_id=3user_id=58 、これにより、テーブル内のすべての行が返されOWN_EVENTSます。

私は何を間違っているのですか?

4

1 に答える 1

3

現在、クエリはデカルト積を返します。

2つのテーブルが互いにどのように接続されているかをオプティマイザーに指示する必要があります。

SELECT  A1.event_id,A1.root_folder,A1.event_name,A1.date,A1.location,A2.user_id 
FROM    OWN_EVENTS A1 
        INNER JOIN INVITED_EVENTS A2 
           ON A1.columnName = A2.columnsName  // columns that defines their relationship
WHERE   A2.user_id=$user_id

結合についてさらに知識を深めるには、以下のリンクにアクセスしてください。

于 2013-03-08T15:26:34.293 に答える