sourcecode

SQL에서 다른 테이블의 테이블에 데이터 삽입

copyscript 2022. 11. 6. 13:38
반응형

SQL에서 다른 테이블의 테이블에 데이터 삽입

테이블에 값을 삽입하는 데 문제가 있습니다.나는 들판으로 빈 테이블을 만들었다.

id(primary key) 
association_id 
resource_id

다른 테이블이 있습니다

resource_id
association_id

그리고 또 다른 하나는

id(coresponding to the association_id in the former one)
image

삽입하고 싶다resource_id그리고.association_id이 테이블에서는 마지막 테이블의 코어 스핀딩 ID 이미지 필드가 비어 있지 않습니다.

이거 해봤어요.

INSERT IGNORE INTO `logo_associations` (``,`association_id`,`resource_id`)
SELECT 
        ``,
        `a`.`association_id`,
        `a`.`resource_id`
FROM doc24_associations_have_resources a
Join doc24_associations    An on a.association_id = An.id 
WHERE An.image<>''

하지만 그것은 작동하지 않는다

이것을 시험해 보세요.

INSERT INTO logo_associations (association_id, resource_id)
SELECT a.association_id
      ,a.resource_id
FROM doc24_associations_have_resources a
LEFT JOIN doc24_associations an ON a.association_id = an.id 
WHERE an.image IS NULL -- check for null with left join

이것은 SQL Server에 유효합니다.첫 번째 열은 사용자가 언급한 ID이므로 선택 및 삽입할 필요가 없습니다.

내 경험은 SQL Server를 기반으로 하지만 SQL은 매우 유사할 수 있습니다.

 INSERT INTO DestinationTable
        (association_id, resource_id)
 SELECT LNK.assocication_id,
        LNK.resource_id
   FROM LinkTable AS LNK
        INNER JOIN ImageTable AS IMG ON IMG.id = LNK.association_id
                   AND IMG.image IS NOT NULL

상기의 가정은 다음과 같습니다.

  1. 테이블 이름은 각각 DestinationTable, LinkTable 및 ImageTable입니다.
  2. DestinationTable에서 기본 키(id)가 자동으로 생성됩니다.

언급URL : https://stackoverflow.com/questions/22403056/sql-insert-data-into-a-table-from-another-table

반응형