2013-07-09 3 views
0

테이블 중 하나에서 사용자 데이터 행을 선택하려고합니다. 배열에 primary_key (user_id)가있는 행만 필요합니다. 어떻게해야합니까? 배열을 생성MySQL 쿼리 결합

쿼리 : 당신은 하위 쿼리를 사용할 수 있습니다

$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) 

답변

0

:

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

쿼리는 사용자 데이터를 잡아합니다. 당신이 원하는 것처럼 내가 제대로 질문을 이해한다면, 그것은 소리

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) 
1

시도 :

당신은 같은으로 두 쿼리를 결합 할 수 있습니다 내부 조인을 사용하십시오. 당신은

"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" 

두 개의 테이블 즉, 당신이 외래 키처럼 user_id를 치료하고, USER_ID 병렬 값이 있어야합니다 .. 같은 일 것입니다 .. 여기에 대해 http://www.w3schools.com/sql/sql_join.asp

구문을 읽을 수 있습니다.

희망이

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) 
1

한 쿼리에서 모든 일을

$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)" 
+1

은 W3 스쿨에 대한 링크를 제거하고 MySQL의 설명서를 교체하는 데 도움이됩니다. w3schools는 악하며 종종 오류로 가득차 있습니다. –

+0

나는 내부 조인이라는 생각을 좋아하지만 조인 후에는 'WHERE' 절이 필요합니다. – Tom

+0

오, 감사합니다, 톰! –