INNER JOIN
s와 함께이 쿼리를 작성할 수 있습니까?MySQL : INNER JOIN을 사용하여 이것을 변환하는 방법
SELECT links.product_id AS entity_id, products.sku, links.`linked_product_id` AS linked_entity_id, products2.`sku` AS linked_skus
FROM catalog_product_entity AS products,
catalog_product_link AS links,
catalog_product_entity AS products2
WHERE links.`product_id` = products.`entity_id`
AND links.`linked_product_id` = products2.`entity_id`
또한, catalog_product_link
는 열 type_id
을 가지고, 나는 type_id
값 끝에 AND catalog_product_link.type_id = 1
조건 1
만 행을 얻고 싶었다, 그러나 그것은 작동하지 않습니다. type_id=1
으로 레코드 만 가져 오는 방법은 무엇입니까?
문에 WHERE links.type_id=1
을 추가하면 문제가 발생합니다. product_id
아래의 모든 항목은 동일한 번호 (동일한 entity_id/product_id)이고 sku
아래의 항목은 모두 NULL입니다. 그래도 linked_product_id
및 linked_skus
은 정확합니다.
더 많은 정보 :
catalog_product_entity
| entity_id | sku | ... |
-------------------
| 1 | abc | |
| 2 | qwe | |
| 3 | yui | |
catalog_product_link
| product_id (same as entity_id) | linked_product_id | type_id |
----------------------------------------------------------------
| 1 | 5 | 1 |
| 1 | 6 | 1 |
| 2 | 1 | 2 |
| 3 | 1 | 1 |
| 3 | 2 | 1 |
| 3 | 4 | 1 |
오타를 수정하기 위해 빠른 편집을했습니다. 'WHERE l.type_id = 1'을 제외하면 작동합니다. 나는 내가 가지고있는 문제를 가지고있다. 나는 더 많은 설명을 위해 나의 포스트를 업데이트했다. 그 두 컬럼에 대해 숫자와 NULL 값을 얻는 이유를 아십니까? – musicliftsme
질문을 다시 읽고 catalog_product_entity 테이블을 두 번 정의하고 있음을 깨달았습니다. 응답/코드를 업데이트했습니다. product_id에 의해 catalog_product_entity 테이블과 함께 catalog_product_entity 테이블을 조인 할 때 내 업데이트 된 게시물을 잘 처리해야합니다. 여기서 type_id = 1. 그것이 작동하지 않거나 당신이 당신의 테이블 내용이 현재 더 좋은 그림을 페인트 할지도 모르는 것처럼 보이는 것을 게시 할 수 있다면 알려주세요. –
그래, 여전히 동일합니다. 원래 게시물을 업데이트하겠습니다. – musicliftsme