我試圖從下表中查詢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