테이블 2 개, wp_events 및 wp_merchants가 있습니다.SQL 중복 레코드를 기반으로 최신 레코드를 선택하십시오.
wp_events 테이블에 중복 된 행이 많습니다. 유일한 차이점은 레코드가 데이터베이스에 추가 된 시간 (TIMESTAMP)입니다. wp_events 테이블에서 가격을 선택하는 SQL 문이 필요하지만 중복이있는 경우 가장 최근의 SQL 문을 선택하십시오.
이것은 내가 지금까지 가지고 있지만 모든 레코드가 선택되지는 않았습니다.
SELECT e.merchant, e.price, e.url, m.merchant_logo, m.merchant_name, e.eventname
FROM wp_events e
INNER JOIN wp_merchants m
ON e.merchant = m.merchant_name
AND e.uploaddate = (SELECT MAX(uploaddate) FROM wp_events WHERE merchant = e.merchant AND eventname = e.eventname)
ORDER BY price ASC
확인하고 이것이 당신이 무엇을 의미하는지 있는지 확인하십시오
SELECT e1.merchant, e1.price, e1.url, wp_merchants.merchant_logo, wp_merchants.merchant_name, e1.eventname
FROM wp_merchants, wp_events e1
LEFT JOIN wp_events e2 ON (e1.merchant = e2.merchant
AND e1.uploaddate < e2.uploaddate)
WHERE e2.merchant IS NULL
AND wp_merchants.merchant_name = e1.merchant
ORDER BY price ASC
나는이 필요하시면 생각 http://sqlfiddle.com/#!2/1db0e/1
귀하의 질문 (최적이 아닌 경우)은 귀하가 설명한대로 정확하게 반환하는 것처럼 보입니다. 정확하게 당신은 무엇을 기대하고 있습니까? – SWeko
http://stackoverflow.com/questions/9270420/sql-closest-rows-to-now-but-unique와 중복되지 않습니까? 사실 그것은 내가 제공 한 것과 동일한 쿼리이며 문제를 해결할 수 있지만 허용 된 것으로 표시하지 않았습니다. –
안녕하세요.하지만 더 많은 행을 입력 한 후 어떤 이유로 든 문제가있는 것으로 보입니다. 보고 주셔서 고마워. 참조하십시오 : ticketreview.net/festival-tickets/european-festivals/... 이 목록에는 동일한 판매자 (WTS)에서 3 개의 검색 결과가 있지만 위 쿼리는 3 개의 가능한 항목 중에서 4 개만 선택합니다. 따라서 결과에 WTS가 없습니다. - –