このクエリをINNER JOIN
s で書くことは可能ですか?
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
1
AND catalog_product_link.type_id = 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 |