0
상황 : 3 개의 테이블 (예 : 열 주소) 중에서 고유해야하는 열만있는 3 개의 테이블 (완전히 다른 열 유형/번호).Mysql : 3 개의 다른 테이블에서 열의 중복 값을 확인하십시오.
내가 3 개 테이블 중 하나에 새 레코드를 삽입 할 때, 나는 값 주소는 이미 3 개 테이블에서의 사용을하지 않을 경우
표
id | column1 | column2 | address |
--------------------------------
1 | ... | ... | 1 |
2 | ... | ... | 2 |
2 | ... | ... | 5 |
을 확인해야
표 2
id | column1 | address |
------------------------
1 | ... | 3 |
2 | ... | 4 |
2 | ... | 10 |
표 3
WHERE a.address = '1'이 한정 testtabella1로부터 1예
SELECT COUNT(a.address) AS cont1, (SELECT COUNT(b.address) FROM testtabella2 AS b WHERE b.address = '1' LIMIT 1) AS cont2, (SELECT COUNT(c.address) FROM testtabella3 AS c WHERE c.address = '1' LIMIT 1) AS cont3
:
25,이 검사를 위해,이 검색어를 사용 MYNEWADDRESS = 1
이렇게하면 3 카운트 중 하나가 1이면 MYNEWADDRESS가 이미 사용되었음을 의미합니다.
더 최적화 된 것을 할 수 있습니까? UNION, JOIN?
열 주소는 3 개 테이블 – Whiteboard
@Whiteboard에서 UNIQUE이다 : 그것은 가장 효율적인 방법은 각 테이블에 고유 제한 조건을 정의 할 수 후 할 것이라고 말했다. . . 열이'unique'로 정의되면 고유 색인이 생깁니다. –