选择";“朋友”;使用mySQL连接案例
在这里,我发布了一个关于根据行中列的值进行联接的问题。 您需要的是创建一个添加好友功能,在该功能中,您将两个用户的ID写入选择";“朋友”;使用mySQL连接案例,mysql,join,case,Mysql,Join,Case,在这里,我发布了一个关于根据行中列的值进行联接的问题。 您需要的是创建一个添加好友功能,在该功能中,您将两个用户的ID写入user\u 1\u ID(我的ID)和user\u 2\u ID(好友ID)。 当您想查看您的好友时,请根据user\u 1\u id或user\u 2\u id是否具有超现实用户(正在浏览的用户)的id来选择 我知道了,下面是您需要使用的查询,以防您需要这样做 这是一个问题 $sql_inp = 'SELECT DISTINCT user
user\u 1\u ID
(我的ID)和user\u 2\u ID
(好友ID)。
当您想查看您的好友时,请根据user\u 1\u id
或user\u 2\u id
是否具有超现实用户(正在浏览的用户)的id来选择
我知道了,下面是您需要使用的查询,以防您需要这样做
这是一个问题
$sql_inp = 'SELECT DISTINCT
users.id, users.first_name, users.last_name,
CASE
WHEN friends.user_2_id="'.$_SESSION[USER][id].'" //equal to current user id
THEN (SELECT friends.user_1_id FROM friends WHERE friends.user_2_id="'.$_SESSION[USER][id].'") // if user_2_id is My id, then fetch the other row
ELSE friends.user_2_id // obviously the opposite
END
FROM users
LEFT JOIN friends ON users.id= // this case is completely the same as one above
CASE
WHEN friends.user_2_id="'.$_SESSION[USER][id].'" THEN (SELECT friends.user_1_id FROM friends WHERE friends.user_2_id="'.$_SESSION[USER][id].'")
ELSE friends.user_2_id
END
WHERE friends.user_1_id="'.$_SESSION[USER][id].'" OR friends.user_2_id="'.$_SESSION[USER][id].'" // fetch the row where the either one of the values is equal to My id
';
希望这有助于任何人遇到麻烦就我个人而言,我讨厌使用CASE语句。这使得查询看起来杂乱无章。尝试使用 在这个查询中,如果table3.val1和table3.val2$user\u id,那么users\u fetch是-1
试试看 就我个人而言,我讨厌使用CASE语句。这使得查询看起来杂乱无章。尝试使用 在这个查询中,如果table3.val1和table3.val2$user\u id,那么users\u fetch是-1
试试看 对不起,我不明白你在找什么。你能把你的模式连同一些样本数据和一些预期结果一起发布吗?对不起,我不明白你在追求什么。你能把你的模式和一些示例数据以及一些预期的结果一起发布吗?我试着做了你所做的,你的代码非常有意义。即使在某些情况下,它也应该可以工作,但我不断收到错误消息。我尝试了你所做的,你的代码也很有意义。即使在某些情况下,它也应该工作,但我不断收到错误消息
$sql_inp = 'SELECT
table1.val1,table1.val2,
table2.val1,table2.val2,
IF(table3.val1="'.$user_id.'",table3.val1,
IF(table3.val2 ="'.$user_id.'",table3.val2,
IFNULL(table3.val2,-1))) users_fetch
FROM table1
INNER JOIN table2 ON table2.val1=table1.val1
LEFT JOIN table3 ON table2.val1=users_fetch';