반응형
SQLite에서 테이블을 조인하는 동안 어떻게 업데이트합니까?
나는 시도했다 :
UPDATE closure JOIN item ON ( item_id = id )
SET checked = 0
WHERE ancestor_id = 1
과:
UPDATE closure, item
SET checked = 0
WHERE ancestor_id = 1 AND item_id = id
둘 다 MySQL에서 작동하지만 SQLite에서 구문 오류가 발생합니다.
이 업데이트 / 조인이 SQLite 버전 3.5.9에서 작동하도록하려면 어떻게해야합니까?
당신은 할 수 없습니다. SQLite 는 UPDATE 문에서 JOIN을 지원하지 않습니다 .
그러나 대신 하위 쿼리를 사용하여이 작업을 수행 할 수 있습니다.
UPDATE closure SET checked = 0
WHERE item_id IN (SELECT id FROM item WHERE ancestor_id = 1);
또는 그런 것; 스키마가 정확히 무엇인지 명확하지 않습니다.
REPLACE 를 사용할 수도 있고 조인과 함께 선택을 사용할 수도 있습니다. 이렇게 :
REPLACE INTO clusure
SELECT sel.col1,sel.col2,....,sel.checked --checked should correspond to column that you want to change
FROM (
SELECT *,0 as checked FROM closure LEFT JOIN item ON (item_id = id)
WHERE ancestor_id = 1) sel
참고 URL : https://stackoverflow.com/questions/773441/how-do-i-make-an-update-while-joining-tables-on-sqlite
반응형
'Programing' 카테고리의 다른 글
Array.prototype.includes 대 Array.prototype.indexOf (0) | 2020.09.04 |
---|---|
Angular 8에서 @ViewChild에 대한 새로운 정적 옵션을 어떻게 사용해야합니까? (0) | 2020.09.04 |
JPA와 Hibernate를 사용할 때 어떻게 같고 해시 코드를 구현해야 하는가 (0) | 2020.09.04 |
자바 스크립트 배열 맵 메서드의 Break 문 (0) | 2020.09.04 |
C # (. NET)을 사용하여 프로그래밍 방식으로 web.config 변경 (0) | 2020.09.04 |