값이 존재하지 않는 경우에만 행을 반환합니다.
P粉043470158
2023-08-24 22:07:48
<p>테이블이 2개 있습니다. - <code>Booking</code>: </p>
<pre class="brush:php;toolbar:false;">some_other_column |
--+------
1 | 값
2|값
3 | 값</pre>
<p>두 번째 테이블 - <code>reservation_log</code>: </p>
<pre class="brush:php;toolbar:false;">reservation_id |
-----+---+-------------
1 | 1 |
2 | 2 |
3 | 3 |
4 | 1 | 취소
5 | 2 | 취소</사전>
<p>취소되지 않은 예약만 선택하면 됩니다(이 경우 ID 3만 해당).
간단한 <code>WHEREchange_type = cancel</code> 조건을 사용하여 "취소"를 쉽게 선택할 수 있지만 간단한 <code>WHERE</code> 여기서는 일하지 마세요. </p>
완전함을 위해(저는 이것이 더 적합하다고 믿습니다) 간단한
으아악NOT EXISTS
을 사용하는 것이 좋습니다.으아아아
또는:
으아아아첫 번째 버전이 더 직관적이지만 일반적으로 두 번째 버전을 사용하면 더 나은 성능을 얻을 수 있다고 생각합니다(조인에 사용된 열에 인덱스가 있다고 가정).
두 번째 버전은 LEFT JOIN이 첫 번째 테이블의 모든 행에 대해 하나의 행을 반환하기 때문에 작동합니다.
ON
条件成功时,这些行将包含第二个表中的列,就像INNER JOIN
一样。当条件失败时,返回的行将包含第二个表中所有列的NULL
。然后,WHERE l.id IS NULL
테스트가 이 행과 일치하면 테이블 간에 일치하지 않는 모든 행을 찾습니다.