MySQL
쿼리를 사용하여 2 개의 테이블에서 데이터를 가져옵니다. 여기에 의 상태가 2 표 2입니다. 상태가 Transfer Out
인 모든 세부 정보를 가져오고 동시에 상태 인 세부 정보가 없어야하며 Transfer Out
뒤에 추가해야합니다. Transfer Out
뒤에 Transfer back In
인 세부 정보를 얻지 않아야합니다.하위 쿼리없이 MySQL 테이블에서 세부 정보 가져 오기
지금은 subquery
을 사용하고 있습니다. 그러나 데이터 수가 증가하면 시간 초과 문제가 발생합니다. 쿼리를 다시 작성하고 동일한 결과를 얻는 더 좋은 방법이 있습니까?
내 쿼리 샘플
SELECT sq.etid
FROM (
SELECT og.etid, pt.timestamp
FROM og_membership og
INNER JOIN table1 n ON(n.nid=og.etid)
INNER JOIN table2 pt ON(og.etid=pt.animal_nid)
WHERE og.entity_type='node'
AND pt.partner_gid = :gid
AND pt.shelter_gid = :our_gid
AND pt.type = 'Transfer Out'
AND (
SELECT count(id)
FROM table2
WHERE timestamp > pt.timestamp
AND type = 'Transfer In'
AND partner_gid = :gid
AND shelter_gid = :our_gid
) = 0
) AS sq
마지막 거래가 '송금'되는 곳과 동일하지 않거나 송금 후 송금 이외의 거래가있을 수 있습니까? –
"2 개의 테이블에서"- 3 개의 테이블처럼 보입니다! –