MYSQLは2つのテーブルを結合し、CASE WHEN

私はこれを動作させるのに問題があります:

SELECT * 
FROM usersActivity 

(JOIN friends ON  usersActivity.userID=friendID
   CASE WHEN friends.userID=$session 
   THEN friends.userID2 
   ELSE friends.userID 
   END AS friendID 

   WHERE (friends.userID=friendID AND friends.userID2=$session) 
   OR (friends.userID=$session AND friends.userID2=friendID)
 )
WHERE usersActivity.setActivity!=3 
AND usersActivity.userID!=$session
ORDER BY usersActivity.setActivity ASC

あなたが友達であることに基づいて、誰がオンラインであるかを返すようにします。 現在、私はそれが私が望むことをするためにこれを行う必要があります:

$onlineUsers = mysql_query("
SELECT *
FROM usersActivity 
WHERE setActivity!=3 
AND userID!=$session
ORDER BY setActivity ASC
");

while($users = mysql_fetch_array($onlineUsers))
{
$friendID = $users['userID'];
$friend = mysql_fetch_assoc(mysql_query("
   SELECT 
   CASE WHEN userID=$session 
   THEN userID2 
   ELSE userID 
   END AS friendID 
   FROM friends 
   WHERE (userID=$friendID AND userID2=$session) 
   OR (userID=$session AND userID2=$friendID)"));

   if($friendID==$friend['friendID'])
   {
          print $friendID; //userID that is online
       }      
 }
0
上の例では、それが何をする必要があるかを示しているので、それが他にどのように役立つかはわかりません
追加された 著者 Dylan Cross,
テーブル定義と希望する出力の例を含めることができれば、あなたの質問を簡素化するのに役立ちます。ありがとう。
追加された 著者 StudyOfCrying,
なぜなら、人々はコードスニペットからあなたのスキーマを派生させようとすることに興味がないからです。テーブルデータとクエリからの望ましい出力の例を提供すると、他の人(またはあなた自身)がそれを取得するために必要なクエリを書くのに役立ちます。
追加された 著者 StudyOfCrying,

答えはありません

0
PHP - 日本のコミュニティ [ja]
PHP - 日本のコミュニティ [ja]
4 参加者の

このグループではPHPについて話します。 パートナー:kotaeta.com