簡體   English   中英

刪除MYSQL中的內連接

[英]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 中有兩個語法錯誤:

  1. DELETE FROM table不從列中刪除
  2. 當您使用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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM