我试图从下表中查询sql。我尝试了很多方法来完成工作,但似乎对于我来说找到解决方案太复杂了。内部有4个条件的复杂sql语句
user_id =“200”; // let's说,用户ID现在是200
tb_conversation
-------------------------------------------------------------------------------------
c_id | user_one_id | user_two_id | user_one_delmsg | user_two_delmsg
-------------------------------------------------------------------------------------
001 | 200 | 198 | Y | N
------------------------------------------------------------------------------------
002 | 195 | 200 | Y | N
------------------------------------------------------------------------------------
003 | 200 | 193 | N | N
------------------------------------------------------------------------------------
什么我正尝试做的是配合查询与上面的USER_ID其中只有一个表。 它可以是表中的user_one或user_two。如果user_id在表中是user_one,那么user_one_delmsg不能是“Y”。或者如果user_id是在表user_two然后,user_two_delmsg绝不能“Y”
我曾尝试:
$q= "SELECT * from conversation ORDER BY c_id DESC ";
$_stmt = $conn->prepare($q);
$_stmt->execute();
$row=$_stmt->fetchAll();
foreach ($row as $r) {
if ($user_id==$r['user_one_id']){
if ($r['user_one_delmsg']!="Y") {
//do something
}
}
if ($user_id==$r['user_two_id']){
if ($r['user_two_delmsg']!="Y") {
//do something
}
}
我得到的是: 阵列结果的匹配是查询。 但我要的是只有一个that's最大的c_id结果和USER_ X _delmsg绝不能“Y”
我也只能使用取();我没有得到我想要的。 我也在最后的查询中放了限制1,但它没有帮助。
你想要的结果是什么?是3吗?列'c_id'的类型是什么? – bansi