그래서, 사용자가 페이지를 보았는지 아닌지를 확인하는 프로그램에 대한 다중 쿼리를 작성하고 있습니다. 그들이 그것을 보지 않았다면 views
이라는 테이블에 레코드가 생성되고 numViews
이라는 레코드가 pages
이라는 테이블에서 업데이트되는 반면, 이미 읽은 것이라면 아무 일도 일어나지 않습니다.MySQL - 테이블 IF 레코드가 다른 테이블에 존재하지 않습니다.
모든 레코드를 고유하게 유지하는 views
에 레코드를 삽입하기 위해 작성된 코드가 있습니다. 내가 직면하고있는 문제는 pages
에 기록을 갱신 할 때입니다. 모든 도움이
INSERT INTO views
(`pageID`, `viewerID`)
SELECT
T.*
FROM
(SELECT
'.$this->pageID.' pageID,
'.$_SESSION['userID'].' viewerID
)
T LEFT JOIN
views
ON
views.creationID = T.pageID
AND
views.viewerID = T.viewerID
WHERE
views.viewerID IS NULL;
를 감사 :
if (record_exits_in_table_named_views == false) {
UPDATE record IN pages
INSERT record INTO views
}
다음은 레코드를 추가 내 쿼리입니다 : 다음 의사의 관점에서
, 나는이 달성 될하고자하는 것입니다. 감사 업데이트에 대한
에 비슷한
LEFT JOIN
를 사용 그것은 : 뷰 테이블에 대한 삽입 트리거를 생성하여 페이지 테이블을 업데이트하거나 필요할 때 뷰의 항목 값을 계산하므로 페이지에 값이 필요하지 않습니다 (트리거를 사용하여 실제로는 단지 op 일 것이다. 속도를 높이기위한 시간 결정). – Solarflare