PHP 加入两个 table,其中一个 table 中的两列包含 from_ID 并且 to_ID 引用另一个 table 中的 id
PHP join two table where two column in one table contains from_ID and to_ID refer to id in another table
我有两个table
fnf
id
from_ID
to_ID
用户
id
name
当我发送好友请求时,我的用户 table 的 ID 转到 from_ID。当其他人发送好友请求时,他的 id 转到 from_ID 而我的 id 转到 to_ID.
我从 fnf table 得到了我所有的朋友 ID,如下所示
$getmyfriends=mysqli_query($con, "SELECT * FROM fnf WHERE (from_ID='$logged' || to_ID ='$logged')");
$getmyfriendsnum=mysqli_num_rows($getmyfriends);
if($getmyfriendsnum !=0){
while($getmyfriendsrow=mysqli_fetch_assoc($getmyfriends)){
$from_ID=$getmyfriendsrow['from_ID'];
$to_ID=$getmyfriendsrow['to_ID'];
if($from_ID==$logged){
$myf=$to_ID;
}else if($to_ID==$logged){
$myf=$from_ID;
}
}
}
现在,我正在尝试从 table users
获取我的非好友 ID
$getalluser=mysqli_query($con, "SELECT * FROM `users` WHERE `id`!='$myf' ");
$getallusernum=mysqli_num_rows($getalluser);
if($getallusernum !=0){
while($getalluserrow=mysqli_fetch_assoc($getalluser)){
$nonfriendid=$getalluserrow['id'];
echo $nonfriendid."</br>";
}
}
我没有得到实际的非朋友 ID。即使我尝试将第二个查询放入第一个 while 循环,这也很糟糕,实际上,我也不理解 INNER JOIN。
谁让非好友的 id 进入第二个 while 循环。
select
`id`
from
`users`
where
`id`
not in
(select
`from_ID`
from
`fnf`)
and
`id`
not in
(select
`to_ID`
from
`fnf`)
我有两个table
fnf
id
from_ID
to_ID
用户
id
name
当我发送好友请求时,我的用户 table 的 ID 转到 from_ID。当其他人发送好友请求时,他的 id 转到 from_ID 而我的 id 转到 to_ID.
我从 fnf table 得到了我所有的朋友 ID,如下所示
$getmyfriends=mysqli_query($con, "SELECT * FROM fnf WHERE (from_ID='$logged' || to_ID ='$logged')");
$getmyfriendsnum=mysqli_num_rows($getmyfriends);
if($getmyfriendsnum !=0){
while($getmyfriendsrow=mysqli_fetch_assoc($getmyfriends)){
$from_ID=$getmyfriendsrow['from_ID'];
$to_ID=$getmyfriendsrow['to_ID'];
if($from_ID==$logged){
$myf=$to_ID;
}else if($to_ID==$logged){
$myf=$from_ID;
}
}
}
现在,我正在尝试从 table users
获取我的非好友 ID$getalluser=mysqli_query($con, "SELECT * FROM `users` WHERE `id`!='$myf' ");
$getallusernum=mysqli_num_rows($getalluser);
if($getallusernum !=0){
while($getalluserrow=mysqli_fetch_assoc($getalluser)){
$nonfriendid=$getalluserrow['id'];
echo $nonfriendid."</br>";
}
}
我没有得到实际的非朋友 ID。即使我尝试将第二个查询放入第一个 while 循环,这也很糟糕,实际上,我也不理解 INNER JOIN。
谁让非好友的 id 进入第二个 while 循环。
select
`id`
from
`users`
where
`id`
not in
(select
`from_ID`
from
`fnf`)
and
`id`
not in
(select
`to_ID`
from
`fnf`)