php - SQL连接两个不同的表

标签 php mysql json

表中有列:

friends:  id | id1 | id2 | accepted | notification

users:    id | username | email | password

好友中的id1始终是好友请求的发送者,id2是他的好友。

$sql = "SELECT * FROM friends WHERE id1='$id' AND accepted=1 AND notification=1;";
$result = mysqli_query($conn, $sql);
$data = mysqli_fetch_all($result, MYSQLI_ASSOC);

header("Content-Type: application/json");
echo json_encode($data);

$id 取自 session 。我想从 id(in users)=id2(如果是 friend )的用户那里获取用户名

$sql 会是什么样子?

最佳答案

不确定您想在逻辑上实现什么目标。 这意味着什么:id(在用户中)= id2(如果是 friend )?你能用文字描述一下吗

也许这样的事情可以让您了解如何继续:

SELECT 
   sender.id1 as senderID,
   u.username as senderUsername,
   receiver.id1 as receiverID,
   u.username as receiverUsername
FROM users u 
INNER JOIN friends sender ON u.id = sender.id1
INNER JOIN friends receiver ON u.id = receiver.id2
WHERE sender.id1='$id' 
  AND receiver.accepted=1
  AND receiver.notification=1;

关于php - SQL连接两个不同的表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55985906/

相关文章:

php - 正则表达式剥离包含特定 href 值的 <a> 标签

php-使用下拉列表中的值排序 SQL Select 语句

通过主查询值提取 MySQL JSON 路径

java - 使用不同的表达式分割字符串

php - 为 php/mysql CMS 预处理和后处理多语言用户输入的最佳方法

javascript - jQuery 和 AJAX 只能工作一次

php - windows 10系统无法在wamp或xampp中安装PHP CodeSniffer

java - CLASSPATH 中存在 JDBC Mysql 连接器,但未找到

mysql - 使用变量作为名称删除外键

ruby - 解析 100mb JSON 负载的有效方法