簡體   English   中英

MySQL查詢返回錯誤的行

[英]Mysql query returns wrong rows

我有一個簡單的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)

我想從其中user_id等於某個數字的Invited Events中獲得OWN EVENT詳細信息

例:

在此處輸入圖片說明

我嘗試:

$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;
}

這應該給我(一行) event_id=3事件詳細信息,其中user_id=58但這將返回OWN_EVENTS表中的所有行。

我究竟做錯了什么 ?

當前,您查詢返回的笛卡爾積。

您需要告訴優化器兩個表如何相互連接。

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

要進一步獲得有關聯接的知識,請訪問以下鏈接:

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM