tbl_product
및 tbl_transaction
의 두 테이블의 경우를 생각해보십시오.
tbl_product
목록하면서 이름과 ID를 포함하여 제품 세부 사항 tbl_transaction
나열 제품을 포함하는 거래와 날짜, 제품 IDS, 고객 등LEFT JOIN의 결과를 제한하는 방법
및 각 제품의 마지막을 포함 5 거래. 지금까지 LEFT JOIN
쿼리가 작동하지 않는 것 같습니다. 그리고 mysql이 tx.product_id=ta.product_id
부분을 허용 할 수 있다면 아래의 하위 쿼리가 작동했을 것입니다 ('where 절'에서 알 수없는 'ta.product_id'열과 함께 실패합니다 : [ERROR : 1054]).
SELECT
ta.product_id,
ta.product_name,
tb.transaction_date
FROM tbl_product ta
LEFT JOIN (SELECT tx.transaction_date FROM tbl_transaction tx WHERE tx.product_id=ta.product_id LIMIT 5) tb
LIMIT 10
루프에서 여러 쿼리를 사용하지 않고 내가 필요한 목록을 달성 할 수있는 방법이 있습니까?
편집 :이 불법 물론
SELECT ta.product_id, ta.product_name, tb.transaction_date ...
FROM tbl_product ta
LEFT JOIN tbl_transaction tb ON (tb.product_id=ta.product_id LIMIT 5)
LIMIT 10
,하지만 난 정말 아니었다 소원 :
이 정확히 내가 MySQL의에서 필요한 것입니다!
가입 할 때 "ON"절이 없습니까? –
ON 절을 사용하더라도 여전히 5 개가 넘는 트랜잭션을 가져옵니다. 만약 내가'tx.product_id = ta.product_id'을 제거하고 LEFT JOIN (* my limitation sql *) tb tb.product_id = ta.product_id'를 수정했다면, 여전히 내가 원하지 않는 것 ~ –
트랜잭션 테이블'tbl_transaction 이드가 있니? – gnarf