2014-07-06 4 views
0

더 좋은 방법이 있습니까? PHP에서 어떤 기능을합니까?PHP, 두 배열을 병합하여 동일한 값을 제거하십시오

$a = array(1, 2, 3, 4, 5, 6); 
    $b = array(1, 2, 8, 9, 10, 3, 20); 

    $c = array_merge($a, $b); 
    $c = array_unique($c); 

결과 : 1, 2, 3, 4, 5, 6, 8, 9, 10, 20

또는 MySQL의에서이를 수행하는 방법 몇 가지 방법이? 이 경우 :

$a = getMySQLArray("SELECT id FROM table1 WHERE ...") 
$b = getMySQLArray("SELECT id FROM table2 WHERE ...") 

내가 같은 ID를 내가 필요하지만 때로는 두 배열에 포함 할 수있는 모든 ID를 얻기 위해 두 단계 (두 개의 SELECT를) 할 필요가 그래서 그것을 필터링 할 필요가있다. 나는 좀 더 복잡한 SQL 요청을 작성하기 위해 SQL 전문가가 아니다. 이런 것을 만들 수 있습니까?

답변

1

당신은 UNION과 그 고유 한 값을 얻을 수있는 단일 쿼리를 사용할 수 있습니다

SELECT 
    id 
FROM table1 WHERE ... 
UNION 
SELECT 
    id 
FROM table2 WHERE ... 

UNION 키워드 ALL없이 단지 귀하의 경우 고유 값에, 별개의 행을 반환합니다.

SELECT ... 
UNION [ALL | DISTINCT] SELECT ... 
[UNION [ALL | DISTINCT] SELECT ...] 

UNION은 하나의 결과 집합에 여러 SELECT 문 에서 결과를 결합하는 데 사용됩니다. ...

UNION의 기본 동작은 중복 행이 결과에서 제거된다는 것입니다.

+0

고맙습니다. 완벽하게 작동합니다. – Lodhart

관련 문제