商品(商品ID、日付)と性別(商品ID、性別)の2つのテーブルがあります。このDELETEクエリはどのように修正できますか?
このproduct_idとsex = 1のセックステーブルに行が存在するproduct_idを持つすべての商品を商品表から削除します。
また、商品テーブルから削除している行の1つに含まれるproduct_idを含むすべての行を性別テーブルから削除したいと考えています。 (これはPRODUCT_IDごとに複数の行を削除することがあります。)
をこれまでのところ、私はその後、
DELETE FROM products
WHERE product_id IN (SELECT product_id FROM @recordsToDelete);
DELETE FROM sex
WHERE product_id IN (SELECT product_id FROM @recordsToDelete);
が、DECLARE文を実行する前
SELECT * FROM @recordsToDelete;
でテストします
DECLARE @recordsToDelete AS TABLE(
int product_id
);
INSERT INTO @recordsToDelete(product_id)
SELECT product_id
FROM products p
JOIN sex s
ON p.product_id = s.product_id
WHERE s.sex = 1;
を持っています私に構文エラーを与えています。私はhere DECLAREがBEGIN/END複合文を必要としていることを書き留めていますが、私はそれを正しく定式化できません。私のミスを修正するにはどうすればいいですか?
EDIT:
CREATE TEMPORARY TABLE recordsToDelete(
product_id INT
);# MySQL returned an empty result set (i.e. zero rows).
INSERT INTO recordsToDelete(product_id)
SELECT p.product_id
FROM products p
JOIN sex s ON p.product_id = s.product_id
WHERE s.sex =1;# Affected rows: 275
SELECT *
FROM recordsToDelete;
ありがとうございます今、orks。 – jela