[英]Delete Inner Join in MYSQL
我有 3 張桌子,我做了一個內部連接。
car_table
|car_id| car |
|------| ------|
|1 | Passat|
property_model
|model_id| p_value |
|--------| ----- |
|1 | year |
|2 | color |
|3 | gear |
|4 | fuel |
|5 | km |
property_value
|value_id| car_id | model_id | rs_value |
|--------| ----- | ----- | ----- |
|1 | 1 | 1 |2020 |
|2 | 1 | 2 |Black |
|3 | 1 | 3 |Automatic |
|4 | 1 | 4 |Diesel |
|5 | 1 | 5 |10.000 |
我想刪除 property_value 表中的值。 但我不能,你能幫我嗎?
我寫的代碼在這里。
DELETE property_value
FROM property_value
INNER JOIN cars ON
property_value.car_id=cars.car_id
INNER JOIN property_model ON
property_model.model_id=property_value.model_id
WHERE value_id='1'
由於您只想刪除值,因此無需使用GROUP BY
DELETE
FROM property_value
INNER JOIN cars ON
property_value.car_id=cars.car_id
INNER JOIN property_model ON
property_model.model_id=property_value.model_id
WHERE value_id='1'
順便說一句,您的原始 sql 中有兩個語法錯誤:
DELETE FROM table
不從列中刪除GROUP BY
,需要在WHERE
之后挑逗評論,我懷疑你在追求這樣的事情......
DROP TABLE IF EXISTS car_table;
CREATE TABLE car_table
(car_id INT AUTO_INCREMENT PRIMARY KEY
,car VARCHAR(12) NOT NULL
);
INSERT INTO car_table VALUES
(1,'Passat');
DROP TABLE IF EXISTS property_model;
CREATE TABLE property_model
(model_id INT AUTO_INCREMENT PRIMARY KEY
,p_value VARCHAR(12) NOT NULL
);
INSERT INTO property_model VALUES
(1,'year'),
(2,'color'),
(3,'gear'),
(4,'fuel'),
(5,'km');
DROP TABLE IF EXISTS property_value;
CREATE TABLE property_value
(value_id INT NOT NULL AUTO_INCREMENT PRIMARY KEY
,car_id INT NOT NULL
,model_id INT NOT NULL
,rs_value VARCHAR(20) NOT NULL
);
INSERT INTO property_value VALUES
(1,1,1,'2020'),
(2,1,2,'Black'),
(3,1,3,'Automatic'),
(4,1,4,'Diesel'),
(5,1,5,'10000');
...
DELETE v
FROM property_model a
JOIN property_value v
ON v.model_id = a.model_id
JOIN car_table e
ON e.car_id = v.car_id
WHERE e.car_id = 1;
SELECT * FROM property_value;
Empty set (0.00 sec)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.