> 데이터 베이스 > MySQL 튜토리얼 > 내 UNION 쿼리에서 '쿼리 입력에 최소한 하나의 테이블 또는 쿼리가 포함되어야 합니다.' 오류가 발생하는 이유는 무엇입니까?

내 UNION 쿼리에서 '쿼리 입력에 최소한 하나의 테이블 또는 쿼리가 포함되어야 합니다.' 오류가 발생하는 이유는 무엇입니까?

Patricia Arquette
풀어 주다: 2025-01-12 09:03:46
원래의
357명이 탐색했습니다.

Why Does My UNION Query Cause a

Jet/ACE 데이터베이스 엔진의 UNION 쿼리 오류: 테이블 또는 쿼리 누락

질문:

테이블 소스가 포함되지 않은 UNION 쿼리를 실행할 때 "쿼리 입력에는 하나 이상의 테이블 또는 쿼리가 포함되어야 합니다."라는 오류가 발생할 수 있습니다.

예를 들어 다음 쿼리는 유효합니다.

<code class="language-sql">SELECT "Mike" AS FName</code>
로그인 후 복사

그러나 다음 쿼리를 사용하여 여러 행을 조인하려는 시도는 실패합니다.

<code class="language-sql">SELECT "Mike" AS FName
UNION ALL
SELECT "John" AS FName</code>
로그인 후 복사

해결책:

이것은 Jet/ACE 데이터베이스 엔진의 버그나 제한 사항이 아닙니다. 여러 행에 대해 UNION 또는 UNION ALL 작업을 수행하려면 데이터 원본의 필드를 참조하지 않는 경우에도 FROM 절을 포함해야 합니다.

예:

단 하나의 행만 있는 테이블을 가상 테이블로 사용할 수 있습니다. 예를 들면 다음과 같습니다.

<code class="language-vba">Public Sub CreateDualTable()
    Dim strSql As String
    strSql = "CREATE TABLE Dual (id COUNTER CONSTRAINT pkey PRIMARY KEY);"
    CurrentProject.Connection.Execute strSql
End Sub</code>
로그인 후 복사

그런 다음 UNION 쿼리에서 이 테이블을 사용할 수 있습니다.

<code class="language-sql">SELECT "Mike" AS FName
FROM Dual
UNION ALL
SELECT "John" AS FName
FROM Dual;</code>
로그인 후 복사

대안:

또는 TOP 1 또는 WHERE 절과 함께 SELECT 문을 사용하여 결과 집합을 하나의 행으로 제한할 수 있습니다.

<code class="language-sql">SELECT TOP 1 "Mike" AS FName
FROM (SELECT "Mike" AS FName UNION ALL SELECT "John" AS FName) AS SubQuery

SELECT "Mike" AS FName
FROM (SELECT "Mike" AS FName UNION ALL SELECT "John" AS FName) AS SubQuery
WHERE ID = 1</code>
로그인 후 복사

위 내용은 내 UNION 쿼리에서 '쿼리 입력에 최소한 하나의 테이블 또는 쿼리가 포함되어야 합니다.' 오류가 발생하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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