わかりましたので、私は私のproduct_to_store
表に次のような構造を持っている:同じテーブルからテーブル内の1つの列から同じ列に挿入し、複数の行
+----------------------+--------------------+
| product_id - int(11) | store_id - int(11) |
+----------------------+--------------------+
+----------------------+--------------------+
| 1000 | 0 |
| 1000 | 6 |
| 1005 | 0 |
| 1010 | 0 |
| 1010 | 6 |
...
は基本的に、私は価値のstore_id
を持っている必要がありますproduct_id
の場合は6
です。たとえば、IDが1005
の製品(product_id
)は、store_id
のレコードが0
のレコードのみです。 product_id
が6
に等しい別のレコード/行が必要です。 ID 1000
と1010
の商品は、どちらも同じようなものです(store_id
のレコードは6
と同じです)。
私だけproduct_id
が設定されている新しい行を挿入順に次のクエリを実行しようとした:
INSERT INTO `product_to_store`
(product_id) SELECT `product_id`
FROM `product_to_store`
WHERE product_id != 6
そしてstore_id
が6
の値を持つnull
あるすべての行を更新するために、別のクエリを実行することを検討します。しかし、私は得る:
#1062 - Duplicate entry '1000-0' for key 'PRIMARY'
。
PHPでループを使用しなくても、これを実現できる方法はありませんか、むしろ実用的ではありませんか?
のSTORE_IDで製品が存在しない製品を挿入したいです。このエラーから、 'product_id'は主キーであり、同じ' product_id'を持つ重複行は許可されません –
@ e-nekoこれは製品と店舗間のクロステーブルのように見えるので、一意のキーはおそらくProduct_id &Store_Id – Matt