0

テーブルの 1 つからユーザー データの行を選択しようとしています。配列に primary_key (user_id) を持つ行のみが必要です。これどうやってするの?

配列を作成するクエリ:

$suggestions_query= "
SELECT * 
  FROM relations 
 WHERE user1= '$user_id' 
   AND status = 1;
";
$suggestions_array= mysqli_query($connect, $suggestions_query);

ユーザー データを取得するためのクエリ:

$search_query= "
SELECT * 
  FROM users 
 WHERE fname LIKE '%".$fname."%' 
   AND lname LIKE '%".$lname."%'" 
   AND IN ARRAY <!-- Code in Question

$search_result= mysqli_query($connect, $search_query)
4

4 に答える 4

1

質問を正しく理解できれば、内部結合を使用したいようです。ここでそれらについて読むことができます.. http://www.w3schools.com/sql/sql_join.asp

構文は次のようになります。

"SELECT * FROM relations "
. "INNER JOIN users ON relations.user_id=users.user_id "
. "WHERE fname LIKE '%".$fname."%' AND lname LIKE '%".$lname."%' "
. "AND user1= '".$user_id."' AND status= 1"

2 つのテーブルは、user_id に対応する値を持っている必要があります。つまり、user_id を外部キーのように扱っています。

お役に立てれば

于 2013-07-09T15:25:12.677 に答える
1

1 つのクエリですべてを実行してみてください

SELECT * FROM users 
WHERE fname LIKE '%".$fname."%' 
AND lname LIKE '%".$lname."%' 
AND user_id IN (
               SELECT user_id FROM relations
               WHERE user1= '".$user_id."' 
               AND status= 1)
于 2013-07-09T15:17:04.610 に答える
0
SELECT * FROM users WHERE fname LIKE '%".$fname."%' AND lname LIKE 
'%".$lname."%'" AND user_id IN (SELECT user_id FROM relations WHERE user1= '".$user_id."' AND STATUS= 1)
于 2013-07-09T15:17:16.147 に答える
0

サブクエリを使用できます。

両方のクエリを次のように組み合わせることができます。

$search_query= "SELECT * FROM users WHERE fname LIKE '%".$fname."%' AND lname LIKE 
'%".$lname."%'" AND id in (SELECT id FROM relations where user1= '".$user_id."' AND status= 1)"
于 2013-07-09T15:16:25.520 に答える