업데이트 된 데이터가있는 테이블이있는 경우 MySql에서 중복 항목 찾기

Разван Б.

내 질문에 여러 번 답변을 받았지만이 작업을 수행 할 수 없습니다.

항목이 업데이트되었는지 여부를 고려하면서 중복 식별자가있는 모든 항목 ID를 얻으려고합니다.

이것이 아이템 데이터를 보관하는 메인 테이블이라고 가정 해 봅시다.

========================== item_table =========================
+----------+---------------+---------+------------+-----------+
| store_id | store_item_id | item_id | identifier | update_id |
+----------+---------------+---------+------------+-----------+
|1         | 1:1           | 1       | abc1       | 1         |
|1         | 1:2           | 2       | abc2       | NULL      |
|1         | 1:3           | 3       | abc3       | NULL      |
|1         | 1:4           | 4       | abc1       | 2         |
|1         | 1:5           | 5       | abc1       | NULL      |
|1         | 1:6           | 6       | NULL       | 3         |
|1         | 1:7           | 7       |            | NULL      |
|1         | 1:8           | 8       | abc1       | NULL      |
|2         | 2:9           | 9       | abc1       | NULL      |
+----------+---------------+---------+------------+-----------+

그리고 업데이트 된 항목에 대한 업데이 트 테이블 (여기서 id경기 update_id에서 item_table)

업데이트 테이블은 항목 데이터를 덮어 쓰며 정의 된 경우 원래 항목 데이터 대신 사용됩니다.

===== update_table =====
+---------+------------+
| id      | identifier |
+---------+------------+
| 1       | abc0       |
| 2       | abc4       |
| 3       | abc1       |
+---------+------------+

제약

  • identifierNULL 또는 빈 문자열이 아닌지 확인하십시오.
  • 특정 항목에 대해서만 확인 store_id
  • 동일한 항목 이 두 번 이상 나타나는 item_id경우 만 선택하십시오 identifier(예 : i.store_item_id <> g.store_item_id동일한 항목인지 확인).

위의 제약 조건으로 원래 항목 데이터를 확인하는 다음 쿼리가 있지만 업데이트 된 값도 확인할 수 없습니다.

SELECT 
  g.item_id
FROM 
  item_table g
WHERE g.store_id = 1 AND EXISTS (
  SELECT 
    i.identifier 
  FROM 
    item_table i 
  WHERE 
    i.identifier = g.identifier AND 
    i.identifier <> '' AND 
    i.identifier IS NOT NULL AND
    i.store_item_id <> g.store_item_id AND
    i.store_id = 1
)

결과:

+---------+
| item_id |
+---------+
| 1       |
| 4       |
| 5       |
| 8       |
+---------+

그러나 정의 된 경우 최종 데이터가되고 내 쿼리가 반환해야하는 내용은 업데이트 테이블을 확인해야합니다.

예상 결과:

나는 모든 필요한 item_id곳의 store_id1과 동일한 식별자 (예를 가지고있다 abc1당좌) update_table뿐만 아니라를

+---------+
| item_id |
+---------+
| 5       |
| 6       |
| 8       |
+---------+

나는 모든 종류의 시도로 돌아가 그와 같은 작업 JOINS, IFNULL사용하는 다른 방법 EXISTS또는 사용 GROUP BY으로 HAVING,하지만 주로 나는이 있기 때문에 작업을 얻을 수 update_id항상 정의되어 있지 않습니다. 어떤 아이디어?

편집 / 설명

  • duplicates제 경우에는 식별자가 모든 항목에 대해 고유해야 함을 의미합니다. 그렇다고 DB에 삽입 할 수 없다는 의미가 아니라 이슈를 수집하고 사용자에게 보여 주면 데이터를 업데이트하고 수정할 수 있습니다.
  • 항목은 사용자가 원하는만큼 업데이트 할 수 있지만 새 항목을 만드는 대신 업데이트 테이블에서 새 값을 덮어 씁니다.
Juan Carlos Oropeza 자리 표시 자 이미지

SQL 데모

SELECT item_id
FROM (
        SELECT store_id, item_id, COALESCE(u.`identifier`, i.`identifier`) as `identifier`
        FROM item_table i
        LEFT JOIN update_table u
           ON i.`update_id` = u.`id`
     ) as updated     
JOIN (
        SELECT store_id, COALESCE(u.`identifier`, i.`identifier`) as `identifier`, COUNT(*)
        FROM item_table i
        LEFT JOIN update_table u
           ON i.`update_id` = u.`id` 
        GROUP BY store_id, COALESCE(u.`identifier`, i.`identifier`) 
        HAVING COUNT(*) > 1
     ) as duplicated
  ON updated.`store_id` = duplicated.`store_id`
 AND updated.`identifier` = duplicated.`identifier`

WHERE updated.`identifier` <> ''
  AND updated.`identifier` IS NOT NULL

ORDER BY  item_id;

산출

여기에 이미지 설명 입력

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

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

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

다른 테이블에 중복 항목이있는 한 테이블의 행을 업데이트하는 방법

분류에서Dev

MySQL 및 PHP : 새 값을 삽입하지 않으면 업데이트가있는 경우 테이블 찾기 값을 반복합니다.

분류에서Dev

findOneAndUpdate (mongoose)는 모델에서 중첩 된 문서를 업데이트하는 경우 true를 반환하지만 업데이트 된 항목은 없습니다.

분류에서Dev

누락 된 데이터 (R)가있는 경우 pmin ()을 사용하여 r에서 가장 빠른 날짜 찾기-업데이트 됨

분류에서Dev

MS SQL에서 특정 중복 항목 찾기 및 업데이트

분류에서Dev

관계형 데이터베이스 테이블에서 모든 관계가있는 항목 찾기

분류에서Dev

MySQL PHP는 데이터베이스에서 항목을 가져오고 XML에 저장 (중복 된 항목)

분류에서Dev

Pandas에서 중복 항목이있는 테이블 피벗

분류에서Dev

기본 키 업데이트-중복 된 경우 삭제

분류에서Dev

데이터베이스 내에서 복사 / 중복 된 테이블 찾기

분류에서Dev

데이터 프레임에서 중복 된 목록 찾기

분류에서Dev

MySQL 테이블에 새 행이있는 경우에만 서버에서 데이터 가져 오기

분류에서Dev

목록 항목이 테이블에있는 경우 검색

분류에서Dev

SSIS-다른 테이블에 특정 값이있는 데이터가 포함 된 경우 테이블 자르기

분류에서Dev

많은 양의 데이터가있는 테이블에서 중복을 찾기 위해 SQL 쿼리 최적화

분류에서Dev

버튼이있는 목록에 항목을 추가하는 경우 업데이트 된 목록을 다른 버튼에서 어떻게 사용합니까?

분류에서Dev

데이터 테이블에 항목이없는 요일 찾기

분류에서Dev

증가 된 기본 키와 증가 된 값이있는 일부 열을 사용하여 테이블의 데이터를 다른 중복 테이블에 복사하는 방법. mySQL에서

분류에서Dev

필수 값이있는 필수 문서가있는 경우 테이블 데이터 업데이트

분류에서Dev

Pandas-다른 열에 동일한 값이있는 행 내의 한 열에서 중복 된 항목 찾기

분류에서Dev

데이터가 다른 테이블에있는 경우 테이블 업데이트

분류에서Dev

값이 목록에있는 경우 Pandas 데이터 프레임의 중복 행

분류에서Dev

개체에서 중복 항목을 제거하고 중복 항목이있는 경우 키 합계 가져 오기

분류에서Dev

업데이트 된 데이터에 추가 섹션이있는 경우 새 경로 추가

분류에서Dev

다른 목록에있는 경우 List <Objects>에서 모든 중복 항목을 업데이트하는 방법은 무엇입니까?

분류에서Dev

쿼리에 값이있는 경우 테이블 업데이트

분류에서Dev

python panda 데이터 구조에서 중복되는 항목 찾기

분류에서Dev

Pandas에서 중복 데이터가있는 피벗 테이블

분류에서Dev

중첩 된 목록이있는 Python에서 보고서 테이블 만들기

Related 관련 기사

  1. 1

    다른 테이블에 중복 항목이있는 한 테이블의 행을 업데이트하는 방법

  2. 2

    MySQL 및 PHP : 새 값을 삽입하지 않으면 업데이트가있는 경우 테이블 찾기 값을 반복합니다.

  3. 3

    findOneAndUpdate (mongoose)는 모델에서 중첩 된 문서를 업데이트하는 경우 true를 반환하지만 업데이트 된 항목은 없습니다.

  4. 4

    누락 된 데이터 (R)가있는 경우 pmin ()을 사용하여 r에서 가장 빠른 날짜 찾기-업데이트 됨

  5. 5

    MS SQL에서 특정 중복 항목 찾기 및 업데이트

  6. 6

    관계형 데이터베이스 테이블에서 모든 관계가있는 항목 찾기

  7. 7

    MySQL PHP는 데이터베이스에서 항목을 가져오고 XML에 저장 (중복 된 항목)

  8. 8

    Pandas에서 중복 항목이있는 테이블 피벗

  9. 9

    기본 키 업데이트-중복 된 경우 삭제

  10. 10

    데이터베이스 내에서 복사 / 중복 된 테이블 찾기

  11. 11

    데이터 프레임에서 중복 된 목록 찾기

  12. 12

    MySQL 테이블에 새 행이있는 경우에만 서버에서 데이터 가져 오기

  13. 13

    목록 항목이 테이블에있는 경우 검색

  14. 14

    SSIS-다른 테이블에 특정 값이있는 데이터가 포함 된 경우 테이블 자르기

  15. 15

    많은 양의 데이터가있는 테이블에서 중복을 찾기 위해 SQL 쿼리 최적화

  16. 16

    버튼이있는 목록에 항목을 추가하는 경우 업데이트 된 목록을 다른 버튼에서 어떻게 사용합니까?

  17. 17

    데이터 테이블에 항목이없는 요일 찾기

  18. 18

    증가 된 기본 키와 증가 된 값이있는 일부 열을 사용하여 테이블의 데이터를 다른 중복 테이블에 복사하는 방법. mySQL에서

  19. 19

    필수 값이있는 필수 문서가있는 경우 테이블 데이터 업데이트

  20. 20

    Pandas-다른 열에 동일한 값이있는 행 내의 한 열에서 중복 된 항목 찾기

  21. 21

    데이터가 다른 테이블에있는 경우 테이블 업데이트

  22. 22

    값이 목록에있는 경우 Pandas 데이터 프레임의 중복 행

  23. 23

    개체에서 중복 항목을 제거하고 중복 항목이있는 경우 키 합계 가져 오기

  24. 24

    업데이트 된 데이터에 추가 섹션이있는 경우 새 경로 추가

  25. 25

    다른 목록에있는 경우 List <Objects>에서 모든 중복 항목을 업데이트하는 방법은 무엇입니까?

  26. 26

    쿼리에 값이있는 경우 테이블 업데이트

  27. 27

    python panda 데이터 구조에서 중복되는 항목 찾기

  28. 28

    Pandas에서 중복 데이터가있는 피벗 테이블

  29. 29

    중첩 된 목록이있는 Python에서 보고서 테이블 만들기

뜨겁다태그

보관