mysql - mySql 查询——网络文件共享程序
问题描述
这是我的代码。它应该选择我正在共享特定文件的人“to_whom”的名称,整个事情需要返回user_id(u_c.to_whom)和user_name,
所以我可以用彼此相邻的复选框填充我的朋友列表,一旦单击,就会将该特定文件共享(保存到数据库表中)给特定的人。
这是来自用户之间共享文件的网络应用程序。
SELECT u_c.to_whom, u.user_name
FROM files f
LEFT JOIN users_connections u_c
ON (u_c.who = :user_id OR u_c.to_whom = :user_id) AND u_c.friends = "Y"
LEFT JOIN users u
ON u.user_id = u_c.to_whom
WHERE f.file_id = 90
在我们的表格文件中
file_id, file_name, file_desc, etc...
在表用户连接中
id, who, to_whom, friends
1 1 4 Y
表示用户 1 已与用户 4 建立了友谊,“Y”表示该友谊为 TRUE(N = 仍待处理)
在用户中,我们有
user_id, user_name
1 Jack
由于某种原因,我似乎无法让它工作。任何高级用户可以帮助我吗?
非常感谢!
解决方案
我找到了这段代码的答案。如果您想构建共享文件系统,它是必不可少的代码。
$query_list_count = "SELECT COUNT(user_id)
FROM users_connections u_c
LEFT JOIN users u
ON u.user_id = u_c.who OR u.user_id = u_c.to_whom
LEFT JOIN files f
ON f.file_id = :file_id
WHERE (u_c.who = :user_id OR u_c.to_whom = :user_id AND friends = :friends)
GROUP BY u.user_id
";
$result_list_count = $db->prepare($query_list_count);
$result_list_count->bindValue(':user_id', $_SESSION['user_id'], PDO::PARAM_INT);
$result_list_count->bindValue(':friends', "Y", PDO::PARAM_STR);
$result_list_count->bindValue(':file_id', $file_id, PDO::PARAM_INT);
$count_ = $result_list_count->fetchColumn();
推荐阅读
- sql - SSRS 将多值文本参数转换为 SQL 语法中的字符串
- sql - 将查询结果中的一列附加到 SQL 中的另一列
- angular - 没有重载与角度上的此调用相匹配
- java - 我该如何解决这个中断标签问题?
- sql - 如何在 GORM 中选择年份
- laravel - 自动登录上的 Laravel 事件监听器(记得我)?
- html - HTML 电子邮件免责声明不起作用(Office 365/Exchange Online)
- css - 如何将 div 放在其具有线性渐变作为其遮罩图像的父 div 上?
- php - Laravel View 不适合 dompdf 生成的 pdf
- wordpress - 如果条件正确,wordpress