-3

編集:

これが私のテーブルです:

[user_friend]テーブル:

  • id、-user_id
  • friend_id
  • 時間

[後期]表:

  • id
  • ユーザーID
  • 理由
  • check_in_time

ここで、現在のユーザーのIDが「1」であるとしましょう。user_friendテーブルでuser_idが「1」のすべての行を検索してから、すべてのfriend_idのuser_idが「1」のすべての行を変数または何か(それぞれ2,3 $ 4のfriend_idを持つ3つの行があるとしましょう)。

ここで、現在のユーザーの友達のID(この場合は2、3、4)のuser_idを使用して、後期テーブルの行のIDを取得します。それが役に立てば幸い

4

1 に答える 1

0

アップデート

私があなたの新しい情報を正しく理解している場合、これは現在= 1であるテーブルfriend_idからのリストを選択します。次に、このリストを使用して、それらが表示されるすべてのエントリを選択します。user_frienduser_idfriend_idlatefriend_id

SELECT * FROM late WHERE user_id IN (SELECT friend_id FROM user_friend where user_id=1);

テーブル結合を使用して同じことを実現することもできます。しかし、説明するのは簡単ではありません。

元の応答 これを行う方法は、を使用することである可能性がありますWHERE IN (SUB SELECT)が、これは最も効率的ではない可能性があります...データ構造とデータ量によって異なりますが、十分な情報を提供していません...

何かのようなもの:

SELECT * FROM late WHERE user_id IN (SELECT * FROM user_friends WHERE id IN (1,2,3));

私が言ったように、最も明確なより良い方法があります-しかし、より多くの情報が役立つでしょう。

于 2013-03-25T14:45:51.560 に答える