JOIN을 포함하는 SELECT 문을 사용하는 Oracle UPDATE

크레이그 오티스

H2 UPDATE / SELECT 문을 Oracle로 이식 중이며 진단하는 데 문제가있는 구문 문제가 발생합니다.

내가 3 개 테이블이, Users, Cars,와 Trips. 다음과 같이 보입니다.

SELECT * FROM USERS;
+------------+----+--------+
|  USERNAME  | ID | CAR_ID |
+------------+----+--------+
| John.Smith |  1 |     5  |
| Abby.Smith |  2 |     6  |
+------------+----+--------+

SELECT * FROM CARS;
+----+--------+-------+
| ID |  MAKE  | COLOR |
+----+--------+-------+
|  5 | Subaru | Green |
|  6 | Honda  | Red   |
+----+--------+-------+

SELECT * FROM TRIPS;
+----+------------+---------+
| ID |  USERNAME  | MILEAGE |
+----+------------+---------+
|  8 | Abby.Smith |      87 |
|  9 | John.Smith |      23 |
+----+------------+---------+

그러나 이제에 새 열을 추가 Trips하고 사용자 대신 자동차 모델 만 추적 하기로 결정했습니다 . 중간 결과로 USERNAME컬럼을 삭제하기 전에 다음을 달성하려고합니다.

+----+------------+---------+-----------+
| ID |  USERNAME  | MILEAGE | CAR_MODEL |
+----+------------+---------+-----------+
|  8 | Abby.Smith |      87 |     Honda |
|  9 | John.Smith |      23 |    Subaru |
+----+------------+---------+-----------+

그리고 내 (비 기능적) 진술은 다음과 같습니다.

WITH USER_MODELS AS
(SELECT USERNAME, MAKE FROM USERS JOIN CARS ON (USERS.CAR_ID = CARS.ID))
UPDATE TRIPS SET CAR_MODEL =
    SELECT MAKE FROM USER_MODELS
    WHERE TRIPS.USERNAME = USER_MODELS.USERNAME

그러나 내가받는 구문 오류는 다음과 같습니다.

UPDATE TRIPS SET CAR_MODEL =
*
ERROR at line 3:
ORA-00928: missing SELECT keyword

그것은 나를 루프로 던지고 있습니다. SELECT명령문은 바로 뒤에 UPDATE오고, 그 앞에는 WITH적절한 형식의 SELECT.

토니 앤드류스

할 수 있지만 하위 쿼리 안에 WITH 절을 넣어야합니다.

UPDATE TRIPS SET CAR_MODEL =
( WITH USER_MODELS AS
       (SELECT USERNAME, MAKE FROM USERS JOIN CARS ON (USERS.CAR_ID = CARS.ID))
  SELECT MAKE FROM USER_MODELS
   WHERE TRIPS.USERNAME = USER_MODELS.USERNAME
);

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

연결 및 pdo를 사용하여 SELECT 문을 INSERT INTO에 포함하는 방법

분류에서Dev

select 문을 사용하여 삽입 및 select 문을 기반으로하는 추가 ON DUPLICATE KEY UPDATE

분류에서Dev

Oracle에서 동시 편집을 위해 SELECT FOR UPDATE를 사용하는 대안이 있습니까?

분류에서Dev

Oracle의 having 및 group by 절을 포함하는 Select 문에서 가져온 행 삭제

분류에서Dev

ORACLE 12C-ROWNUM을 사용하는 SELECT 쿼리

분류에서Dev

update from select 문을 사용하여 고유 한 열 값을 설정하는 방법

분류에서Dev

select 문에서 중첩 함수를 사용하는 Oracle group by 절

분류에서Dev

SELECT FOR UPDATE가 Oracle 12.1 / 19.3을 사용하는 PL / SQL 기반 테스트 케이스에서 작동하지 않는 것 같습니다.

분류에서Dev

Anorm을 사용하여 SELECT ... FOR UPDATE

분류에서Dev

not in을 포함하는 if 문

분류에서Dev

'group by'및 'join'을 사용하는 동안 단일 쿼리의 여러 select 문

분류에서Dev

IN SELECT를 사용하는 Oracle vs MS SQL UPDATE

분류에서Dev

모든 행을 업데이트하지 않는 UPDATE의 내부 SELECT Oracle

분류에서Dev

ON DUPLICATE KEY UPDATE 구문을 사용하여 구분 된 값을 포함하는 열을 조건부로 업데이트하는 방법

분류에서Dev

문자열과 동일하지 않은 문자열을 포함하는 행을 리턴하는 SQL select 문

분류에서Dev

변수가있는 SELECT 문을 사용하는 SQL INSERT INTO VALUE 문

분류에서Dev

동일한 열을 두 번 사용하여 SELECT 또는 JOIN

분류에서Dev

INNER JOIN을 사용하는 SQL SELECT의 오류

분류에서Dev

문자를 포함하지 않는 문자열을 찾기위한 Oracle 쿼리

분류에서Dev

Oracle의 select 문을 쉘 변수에 할당하는 방법

분류에서Dev

IF 문을 사용하고 조건에 수학을 적용하는 SQL Select 문

분류에서Dev

"with"문을 사용하여 하위 모델을 호출하는 laravel select 문

분류에서Dev

Oracle 12c-테이블의 값을 사용하여 select 문 작성

분류에서Dev

변수에 저장된 값을 사용하여 Oracle에서 select 문 작성

분류에서Dev

MySQL Select-선호하는 값을 사용하여 주문

분류에서Dev

ORACLE PL-SQL 함수를 사용하여 문자열을 분할하고 목록을 반환하는 방법

분류에서Dev

ROWNUM을 사용하는 Oracle 데이터베이스 문제

분류에서Dev

문자열을 포함하는 구조체에서 qsort 사용

분류에서Dev

C #을 사용하여 포함을 사용하는 방법

Related 관련 기사

  1. 1

    연결 및 pdo를 사용하여 SELECT 문을 INSERT INTO에 포함하는 방법

  2. 2

    select 문을 사용하여 삽입 및 select 문을 기반으로하는 추가 ON DUPLICATE KEY UPDATE

  3. 3

    Oracle에서 동시 편집을 위해 SELECT FOR UPDATE를 사용하는 대안이 있습니까?

  4. 4

    Oracle의 having 및 group by 절을 포함하는 Select 문에서 가져온 행 삭제

  5. 5

    ORACLE 12C-ROWNUM을 사용하는 SELECT 쿼리

  6. 6

    update from select 문을 사용하여 고유 한 열 값을 설정하는 방법

  7. 7

    select 문에서 중첩 함수를 사용하는 Oracle group by 절

  8. 8

    SELECT FOR UPDATE가 Oracle 12.1 / 19.3을 사용하는 PL / SQL 기반 테스트 케이스에서 작동하지 않는 것 같습니다.

  9. 9

    Anorm을 사용하여 SELECT ... FOR UPDATE

  10. 10

    not in을 포함하는 if 문

  11. 11

    'group by'및 'join'을 사용하는 동안 단일 쿼리의 여러 select 문

  12. 12

    IN SELECT를 사용하는 Oracle vs MS SQL UPDATE

  13. 13

    모든 행을 업데이트하지 않는 UPDATE의 내부 SELECT Oracle

  14. 14

    ON DUPLICATE KEY UPDATE 구문을 사용하여 구분 된 값을 포함하는 열을 조건부로 업데이트하는 방법

  15. 15

    문자열과 동일하지 않은 문자열을 포함하는 행을 리턴하는 SQL select 문

  16. 16

    변수가있는 SELECT 문을 사용하는 SQL INSERT INTO VALUE 문

  17. 17

    동일한 열을 두 번 사용하여 SELECT 또는 JOIN

  18. 18

    INNER JOIN을 사용하는 SQL SELECT의 오류

  19. 19

    문자를 포함하지 않는 문자열을 찾기위한 Oracle 쿼리

  20. 20

    Oracle의 select 문을 쉘 변수에 할당하는 방법

  21. 21

    IF 문을 사용하고 조건에 수학을 적용하는 SQL Select 문

  22. 22

    "with"문을 사용하여 하위 모델을 호출하는 laravel select 문

  23. 23

    Oracle 12c-테이블의 값을 사용하여 select 문 작성

  24. 24

    변수에 저장된 값을 사용하여 Oracle에서 select 문 작성

  25. 25

    MySQL Select-선호하는 값을 사용하여 주문

  26. 26

    ORACLE PL-SQL 함수를 사용하여 문자열을 분할하고 목록을 반환하는 방법

  27. 27

    ROWNUM을 사용하는 Oracle 데이터베이스 문제

  28. 28

    문자열을 포함하는 구조체에서 qsort 사용

  29. 29

    C #을 사용하여 포함을 사용하는 방법

뜨겁다태그

보관