0

私は2列のテーブルの友達テーブルを持っています。ここには、お互いに友達であるユーザーの再コードがあります。特定のユーザーと友達のリストを取得したい。そのために、SQLクエリをそのように記述し、結果を取得しました。

SELECT * 
FROM  `friends` 
WHERE  `user_idf` =  '2'
OR  `user_idff` =  '2'

++ user_idf ++++   user_idff+++
    2   +   1
    3   +   2   
    4   +   2
    2   +   5
+++++++++++++++++++++++++++

2の友達であるユーザーをエコーするphp関数を作成する方法(これは、アプリケーションからユーザーIDを取得するPOSTに置き換えます)、つまり1、3、4、5

4

1 に答える 1

1

このような意味ですか?

(SELECT `user_idf` FROM `user` WHERE `user_idff` = 2) UNION (SELECT `user_idff` FROM `user` WHERE `user_idf` = 2)

正直なところ、SQLは得意ではありませんが、ユニオンがあなたが探しているものだと思います(100%ではありませんが、私の構文は正しいと思います)。

これ私の理解から、ユーザー2と友達である人のユーザーIDを取得して出力する必要があります。ユーザー2が列user_idfにいるときに返される結果の和集合。user_idff

編集:実際、私はまだ私の答えを支持しています。あなたがそうしない場合、このSQL側を行わない場合は、より複雑なPHP関数が必要になります。

PHP自体については、プリペアドステートメントの2つの主要なオプションとしてmysqliとPDOを調べてください。

于 2012-07-21T14:36:55.240 に答える