2017-12-12 5 views
0

Magento에 익숙한 사용자는 catalog_product_link 테이블에 새로운 upsell 항목을 만드는 쿼리를 작성하려고하지만 고유 한 기준이 있습니다. MySQL (또는 SQL)에 대한 필자의 지식은 기껏해야 기본 지식입니다.두 목록의 SQL 결과를 일치시키고 발견 된 각 일치에 대해 새 행을 삽입하는 방법은 무엇입니까?

테이블에 두 가지 유형의 제품이 있습니다.이 제품은 몇 가지 다른 테이블을 결합하여 고유하게 식별 할 수 있습니다. 그래서 같은 제품 결과의 두 가지 유형의 고유 목록을 얻을 수 있습니다 결과의 두 목록이 WHERE cat.category_id IN (41) 변화를 기반으로

SELECT cpev.entity_id AS product_id, cpev.value AS name 
FROM catalog_product_entity_varchar AS cpev 

INNER JOIN catalog_product_entity AS cpe 
ON cpe.entity_id = cpev.entity_id 

INNER JOIN eav_attribute AS ea 
ON ea.attribute_id = cpev.attribute_id 

INNER JOIN catalog_category_product AS cat 
ON cat.product_id = cpev.entity_id 

WHERE cat.category_id IN (41) 
AND ea.attribute_code = 'name' 

GROUP BY product_id 
ORDER BY product_id; 

을 ....

내가하려는 것은 이름의 첫 번째 목록에서 두 번째 목록에서 하나 이상의 행을 일치시키는 것입니다. 첫 번째 목록의 전체 이름은 두 번째 목록의 이름의 첫 번째 부분과 일부 텍스트를 더한 것입니다. 예를 들면 :

  • 목록 1, 이름 : Afinia L801은
  • 리스트 2는, 이름 : Afinia L801 현장 유지 관리 각 경기 계약

, 나는 다른에 새 행을 삽입해야 테이블과 같이이는 SQL로 수행 할 수있는 무언가 경우, 또는

INSERT INTO catalog_product_link (product_id, linked_product_id, link_type_id) 
SELECT @idFromList1 AS product_id, @idFromList2 as linked_product_id, 4 as link_type_id 
... 

잘 모르겠어요이게 내가 (예를 들어)는 PHP 사우스 캐롤라이나를 작성해야하는 경우가있는 경우 ript를 사용하여 db에서 두 목록을 가져 와서 일치시킨 다음 결과를 삽입하십시오. 그러나 나는 여전히 SQL을 배우고 있으므로 MySQL 쿼리만으로 할 수있는 것을 더 잘 이해하려고 노력 중입니다.

+0

어떤 열이 이름을 갖고 있습니까? 당신이 찾고있는 다른 카테고리 번호는 무엇입니까? – clinomaniac

답변

0

같은 표에서 두 번 선택할 수 있습니다.

SELECT cpev.entity_id AS product_id, cpev.value AS name 
FROM catalog_product_entity_varchar AS cpev 
INNER JOIN catalog_product_entity AS cpe 
ON cpe.entity_id = cpev.entity_id 
INNER JOIN eav_attribute AS ea 
ON ea.attribute_id = cpev.attribute_id 
INNER JOIN catalog_category_product AS cat 
ON cat.product_id = cpev.entity_id 
INNER JOIN catalog_category_product AS cat2 
ON cat2.product_id = cpev.entity_id 
WHERE cat.category_id IN (41) 
AND cat2.category_id IN (42) 
AND ea.attribute_code = 'name' 
GROUP BY product_id 
ORDER BY product_id; 
관련 문제