> 백엔드 개발 > PHP 문제 > PHP 두 테이블 병합 쿼리

PHP 두 테이블 병합 쿼리

王林
풀어 주다: 2023-05-07 09:25:07
원래의
652명이 탐색했습니다.

PHP 개발에서는 여러 데이터 테이블에서 공동 쿼리를 수행해야 하는 상황에 자주 직면합니다. 이때 SQL 문에서 Union 키워드를 사용하여 두 테이블을 병합할 수 있다. 이 기사에서는 PHP에서 Union 키워드를 사용하여 두 테이블을 병합하는 방법을 소개합니다.

  1. 기본 구문

다음 구문을 사용하여 두 테이블을 병합할 수 있습니다.

SELECT column1, column2, ... FROM table1
UNION
SELECT column1, column2, ... FROM table2;
로그인 후 복사

그 중 컬럼1, 컬럼2, ...가 쿼리해야 할 컬럼 이름이고, table1과 table2가 데이터입니다. 각각 쿼리해야 합니다. Union 키워드는 두 개의 SELECT 문의 결과를 쿼리 결과 집합으로 결합하는 데 사용됩니다. 병합 쿼리를 수행할 때 두 개의 SELECT 문에서 선택한 열의 수와 유형이 일치해야 합니다. 그렇지 않으면 오류가 발생합니다.

  1. UNION ALL 키워드 사용

데이터 테이블 병합 쿼리에 UNION 키워드를 사용하는 것 외에도 병합 쿼리에 UNION ALL 키워드를 사용할 수도 있습니다. UNION 키워드와 달리 UNION ALL 키워드는 중복 레코드를 포함하여 두 쿼리 결과 집합의 모든 레코드를 병합합니다. 실제 상황에서는 중복된 기록을 보관해야 할 수도 있으므로 특별한 주의가 필요합니다.

다음은 데이터 테이블 병합 쿼리에 UNION ALL 키워드를 사용하기 위한 기본 구문입니다.

SELECT column1, column2, ... FROM table1
UNION ALL
SELECT column1, column2, ... FROM table2;
로그인 후 복사
  1. 샘플 코드

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 테이블로 출력합니다.

  1. 요약

Union 키워드를 사용하면 여러 데이터 테이블에 대해 공동 쿼리를 쉽게 수행하여 원하는 데이터 결과를 얻을 수 있습니다. 병합 쿼리를 수행할 때 두 개의 SELECT 문에서 선택한 열의 수와 유형이 일관되어야 하며 그렇지 않으면 오류가 발생한다는 점에 유의해야 합니다. 또한 UNION ALL 키워드를 사용하여 데이터 테이블을 병합하여 모든 중복 레코드를 유지할 수도 있습니다. 실제 개발에서는 데이터 테이블 병합 쿼리를 수행해야 하는 필요성에 따라 가장 적합한 유형을 선택해야 합니다.

위 내용은 PHP 두 테이블 병합 쿼리의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿