【发布时间】:2016-10-10 17:16:36
【问题描述】:
我想SELECT数据FROMstatustableWHEREaccount_name or author是$logname或$username如果account_name or author是friends987654334@9334的朋友p>
这里是status table
数据 account_name 作者
1 你好 约翰 约翰
2 我很好 约翰 Doe
3 请 Doe James
4 谁是谁? 詹姆斯 史密斯
5 嗯 约翰 威廉姆斯
6 地狱 银行 詹姆斯
这里是friends table
user1 user2
约翰 Doe
詹姆斯 Doe
史密斯 詹姆斯
威廉姆斯 约翰
银行 詹姆斯
我想做的是能够SELECT 来自status table 的所有数据,其中account_name and author 是John 或Doe 或John 的朋友,即Williams。
所以当$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 或$username。
$username = "Doe";
$logname = "John";
$query=mysqli_query($db_conx, "SELECT s.id, s.account_name, s.author, s.data, s.postdate FROM status s INNER JOIN friends f ON f.user1='$username' OR f.user2='$username' WHERE s.account_name='$username' OR s.author='$username' OR s.account_name='$logname' OR s.author='$logname' GROUP BY s.id ORDER BY s.postdate DESC");
//I have also tried these two queries but not giving me what I want
//$query = mysqli_query($db_conx, "SELECT * FROM status WHERE account_name = '$username' OR author = '$username' ORDER BY postdate DESC");
$num_row = mysqli_num_rows($query);
echo " Numbers ".$num_row;
//$query =mysqli_query($db_conx, "SELECT s.* , f.* FROM status s, friends f WHERE s.account_name='$user' AND f.user1='$user' OR f.user2='$user'");
while($row=mysqli_fetch_array($query))
{
?>
<tr>
<td><p><?php echo $row['data']; ?></p></td>
<td><p><?php echo $row['id']; ?></p></td>
<td><p><?php echo $row['author']; ?></p></td>
<td><p><?php echo $row['account_name']; ?></p></td>
</tr>
<?php
}
到目前为止,我已经检查过,如果有任何帮助,我们将不胜感激。
Difference between left join and right join in SQL Server
【问题讨论】: