PHP 개발에서는 여러 데이터 테이블에서 공동 쿼리를 수행해야 하는 상황에 자주 직면합니다. 이때 SQL 문에서 Union 키워드를 사용하여 두 테이블을 병합할 수 있다. 이 기사에서는 PHP에서 Union 키워드를 사용하여 두 테이블을 병합하는 방법을 소개합니다.
다음 구문을 사용하여 두 테이블을 병합할 수 있습니다.
SELECT column1, column2, ... FROM table1 UNION SELECT column1, column2, ... FROM table2;
그 중 컬럼1, 컬럼2, ...가 쿼리해야 할 컬럼 이름이고, table1과 table2가 데이터입니다. 각각 쿼리해야 합니다. Union 키워드는 두 개의 SELECT 문의 결과를 쿼리 결과 집합으로 결합하는 데 사용됩니다. 병합 쿼리를 수행할 때 두 개의 SELECT 문에서 선택한 열의 수와 유형이 일치해야 합니다. 그렇지 않으면 오류가 발생합니다.
데이터 테이블 병합 쿼리에 UNION 키워드를 사용하는 것 외에도 병합 쿼리에 UNION ALL 키워드를 사용할 수도 있습니다. UNION 키워드와 달리 UNION ALL 키워드는 중복 레코드를 포함하여 두 쿼리 결과 집합의 모든 레코드를 병합합니다. 실제 상황에서는 중복된 기록을 보관해야 할 수도 있으므로 특별한 주의가 필요합니다.
다음은 데이터 테이블 병합 쿼리에 UNION ALL 키워드를 사용하기 위한 기본 구문입니다.
SELECT column1, column2, ... FROM table1 UNION ALL SELECT column1, column2, ... FROM table2;
PHP에서 데이터 테이블 병합 쿼리에 UNION 키워드를 사용하는 방법을 더 잘 이해하려면 다음을 수행하세요. 데모용 코드를 사용해 보세요. 사용자와 직원이라는 두 개의 데이터 테이블이 있다고 가정합니다. 해당 데이터 구조는 다음과 같습니다.
user表: id name age city 1 Tom 22 北京 2 Jerry 23 上海 3 Peter 24 广州 employee表: id name age salary 1 Mary 25 2000 2 Lucy 26 2500 3 Jack 27 3000
이제 사용자 테이블과 직원 테이블의 모든 레코드를 쿼리해야 합니다. 이 작업을 수행하려면 다음 코드를 사용할 수 있습니다.
<?php try { $pdo = new PDO('mysql:host=localhost;dbname=test', 'root', 'password'); $sql = "SELECT id, name, age, city FROM user UNION ALL SELECT id, name, age, salary as city FROM employee"; $stmt = $pdo->query($sql); echo "<table>"; echo "<tr><td>ID</td><td>Name</td><td>Age</td><td>City</td></tr>"; while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) { echo "<tr>"; echo "<td>".$row['id']."</td>"; echo "<td>".$row['name']."</td>"; echo "<td>".$row['age']."</td>"; echo "<td>".$row['city']."</td>"; echo "</tr>"; } echo "</table>"; } catch (PDOException $e) { echo $e->getMessage(); } ?>
코드에서는 먼저 PDO 연결 개체를 만든 다음 SQL 문에서 UNION ALL 키워드를 사용하여 쿼리용 사용자 테이블과 직원 테이블을 병합합니다. 마지막으로 fetch 함수를 통해 쿼리 결과를 한 행씩 얻고 그 결과를 HTML 테이블로 출력합니다.
Union 키워드를 사용하면 여러 데이터 테이블에 대해 공동 쿼리를 쉽게 수행하여 원하는 데이터 결과를 얻을 수 있습니다. 병합 쿼리를 수행할 때 두 개의 SELECT 문에서 선택한 열의 수와 유형이 일관되어야 하며 그렇지 않으면 오류가 발생한다는 점에 유의해야 합니다. 또한 UNION ALL 키워드를 사용하여 데이터 테이블을 병합하여 모든 중복 레코드를 유지할 수도 있습니다. 실제 개발에서는 데이터 테이블 병합 쿼리를 수행해야 하는 필요성에 따라 가장 적합한 유형을 선택해야 합니다.
위 내용은 PHP 두 테이블 병합 쿼리의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!