2011-08-16 6 views
1

내가 code의 항목으로 미리 채워져 필드 id, code, issuedto, issuedtime와 테이블 codes을 가지고 있지만 issuedto, issuedtime에서 NULL s의 많은 행이있다. 나는 필드 id, status을 가진 다른 테이블 entrants 있습니다. 내가 status = 'won'winners의 각 행에 대해 codes.issuedto = winners.id 설정할 다른 테이블에서 Null을 채우기위한 MySQL 업데이트 테이블

의 의 . 문제

의 의 내가에 테이블을 조인하기 위해 아무것도하지 않는 것입니다 - 그래서 나는 가입 십자가로 끝날 그리고 내가 전혀 원하는 아니다. 그러나에 가입 아무것도없이 - 내가 정말 원하는 것은 내부 조인입니다. 누구나 어떤 아이디어가?

편집 : 내가 할 수있는 SQL 외부에서 이렇게했다면 의사 코드는 다음과 유사합니다.

rows = query("SELECT id FROM winners WHERE status='won'"); 
foreach (rows as r) { 
    query("UPDATE codes SET issusedto=" + r.id + ", issued=NOW() WHERE issuedto IS NULL LIMIT 1"); 
} 

답변

0

OP : 나는 의사가 같이 보일 것 (? 내가해야 할 수도 있습니다) SQL의 외부에서 일을한다면. 몇 가지 광범위한 검색과 실험을 거친 후에 나는 이것이 SQL로 수행 될 수 없다는 결론에 도달했습니다. 질문에 나와있는 의사 코드와 비슷한 저를 위해이 작업을 수행 할 짧은 스크립트를 작성했습니다. ACID 준수는 트랜잭션에 의해 달성됩니다 (중요하다면 DBMS에서 자세한 내용을 확인하십시오).

관련 문제