我想Toggle
数据SELECT
FROM
status
table
WHERE
是account_name or author
或$logname
如果$username
是来自account_name or author
friends
table
数据 account_name 作者
1 您好 John John
2 很好 John Doe
3 请 Doe James
4 谁是谁? 詹姆斯 史密斯
5 嗯 约翰 威廉姆斯
6 地狱 银行 詹姆斯
status table
user1 user2
John Doe
詹姆斯 Doe
史密斯 詹姆斯
威廉姆斯 约翰
银行 詹姆斯
我想要做的是friends table
SELECT
来自status table
的所有数据,其中account_name and author
是John或Doe或John的朋友,即威廉姆斯。
因此$username="Doe"
和$logname="John"
时查询的输出应为1,2,3和5,但$username="Doe"
和$logname="Doe"
应为1,2, 3,4,5和6。
以上是我到目前为止所尝试的内容,但我从status
或仅result
得到了account_name or author
只有$logname
或{{1}的所有结果}}
$username
到目前为止,我已经检查了,请任何帮助将不胜感激。
Difference between left join and right join in SQL Server
答案 0 :(得分:0)
那个示例数据非常有用,我想出了这个:
$query=mysqli_query($db_conx, "
SELECT
`status`.id,
`status`.account_name,
`status`.author,
`status`.`data`
FROM
`status`
LEFT JOIN friends AS acc_friends ON `status`.account_name IN (acc_friends.friend1, acc_friends.friend2)
LEFT JOIN friends AS au_friends ON `status`.author IN (au_friends.friend1, au_friends.friend2)
WHERE
'$logname' IN (acc_friends.friend1, au_friends.friend1,acc_friends.friend2, au_friends.friend2)
OR '$username' IN (acc_friends.friend1, au_friends.friend1,acc_friends.friend2, au_friends.friend2)
");
我一开始很少理解你的需求,这次是从作者OR帐户中删除每个记录,然后搜索Banks
或Doe
(将它们更改为logname和用户名)在朋友列表中,因为在帐户和作者中再次搜索只是多余的。
此查询应该可以解决问题:)
答案 1 :(得分:0)
在张贴在他朋友的朋友或朋友身上时,您似乎正在尝试SELECT
朋友的朋友记录?类似于facebook feed。
我不知道是否有更好的方法可以做到这一点,但你可以尝试下面的代码,需要改进它或有人可以在这里改进它。
$query = mysqli_query($db_conx, "SELECT * FROM friends WHERE user1='kira' OR user2 = 'mandekira' OR user2='kira' OR user1 = 'mandekira'");
$num_row = mysqli_num_rows($query);
?>
<table>
<?php
while($row=mysqli_fetch_array($query))
{
$sql = mysqli_query($db_conx, "SELECT * FROM status WHERE (account_name='".$row['user1']."' AND author='".$row['user2']."') OR (account_name='".$row['user2']."' AND author='".$row['user2']."') ORDER BY postdate DESC");
while($row=mysqli_fetch_array($sql))
{
?>
<tr>
<td width="100"><?php echo $row['data']; ?></td>
<td width="100"><?php echo $row['account_name']; ?></td>
<td width="100"><?php echo $row['author']; ?></td>
</tr>
<?php
}
}
?>
</table>
<?php