한 테이블의 user_Id를 다른 테이블의 parent_id에 삽입하고 싶은데 두 테이블 사이에 공통 값이 없습니다.
P粉323224129
2023-07-30 13:35:25
<p style="white-space:normal;">현재 세 개의 테이블이 있습니다: </p><p style="white-space:normal;">users 테이블//등록 중에 데이터가 삽입됩니다. <pre class="brush:php;toolbar:false;">usersId //기본 키
사용자 이름
사용자 이름
userUid
이메일
사용자 비밀번호
날짜시간</pre>
<p><code>상위</code>/p>
<pre class="brush:php;toolbar:false;">id //기본 키
ikB
mL이름
나이메일
엠폰
f이름
fL이름
f이메일
f전화
주소L1
주소L2
도시
상태Abbr
지퍼
생성_시간
user_id //외래 키</pre>
<p>users 테이블의 email 열과 mEmail 또는 fEmail을 사용하여 usersId를 상위 테이블에 삽입했습니다. </p>
<p><code>어린이</code> 테이블</p>
<pre class="brush:php;toolbar:false;">child_id //기본 키
child1이름
dobChild1
나이어린이1
child2이름
dobChild2
나이어린이2
child3이름
dobChild3
나이어린이3
child4이름
dobChild4
나이어린이4
아이5이름
dobChild5
나이어린이5
child6이름
dobChild6
나이어린이6
child7이름
dobChild7
나이어린이7
child8이름
dobChild8
나이어린이8
child9이름
dobChild9
나이어린이9
child10이름
dobChild10
나이어린이10
parent_id //외래 키</pre>
<p>어린이 테이블과 다른 두 테이블 사이에는 공통 값이 없습니다. 내 기대는 사용자 테이블과 상위 테이블 간의 유효성 검사를 수행하고 사용자 테이블의 usersId와 상위 테이블의 user_id가 동일한 경우 해당 값을 하위 테이블의 parent_id에 삽입하는 것입니다. 이것이 가능한가? 교차 조인 사용을 고려했지만 데이터베이스의 항목 수가 증가하면 성능이 저하될까 걱정됩니다. </p>
<pre class="brush:php;toolbar:false;">사용자 중에서 사용자 ID를 선택하세요.
부모에서 user_id를 선택하세요.
UPDATE 하위 항목(parent_Id) INNER JOIN 상위 ON children.parent_id = users.usersId
업데이트 어린이
사용자 ID 선택
사용자로부터
교차 JOIN children.parent_id ON users.usersId = children.parent_id
업데이트 어린이
INNER JOIN 사용자
(INNER JOIN 상위 ON users.userId = parent.userId)
ON users.usersId = parent.user_id
SET children.parent_id = parent.user_Id;</pre>
<p>모든 방법을 시도했지만 성공하지 못했습니다. 또한 연결 순서를 변경해 보았지만 역시 작동하지 않았습니다. 귀하가 제공할 수 있는 도움에 진심으로 감사드립니다. </p>
귀하의 설명에 따라 사용자 테이블과 상위 테이블 간의 일치하는 값을 기반으로 하위 테이블의 parent_id 열을 업데이트하려고 합니다. 사용자 테이블의 usersId와 상위 테이블의 user_id를 사용하여 하위 테이블의 parent_id를 업데이트하려고 합니다.
다음 SQL 쿼리를 사용하여 이 작업을 수행할 수 있습니다.
으아악설명:
안전을 위해 업데이트 쿼리를 실행하기 전에 데이터베이스를 백업하세요. ,
데이터베이스 항목이 증가함에 따라 성능에 대한 우려가 있는 경우, 사용자 테이블의 이메일, 상위 테이블의 mEmail 및 fEmail과 같은 관련 열에 적절한 인덱스가 있는 한 이 쿼리는 효율적입니다. 인덱스는 특히 대규모 데이터 세트로 작업할 때 조회 프로세스 속도를 크게 향상시킵니다.