0

このクエリをINNER JOINs で書くことは可能ですか?

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_id1AND catalog_product_link.type_id = 1type_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    |
4

2 に答える 2

1

何かのようなもの...

SELECT
    p.sku,
    l.product_id AS entity_id, l.linked_product_id AS linked_entity_id
FROM catalog_product_entity AS p
     INNER JOIN catalog_product_link AS l
         ON p.entity_id= l.product_id
WHERE l.type_id = 1
于 2013-04-15T21:08:57.110 に答える