我有一个简单的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 Events
个详细信息user_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;
}
这应该给我{一行}事件详细信息event_id=3
其中user_id=58
但这会返回OWN_EVENTS
表中的所有行。
我做错了什么?
答案 0 :(得分:3)
目前,您查询返回笛卡尔积。
您需要告诉优化器这两个表是如何相互连接的。
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
要进一步了解联接,请访问以下链接: