删除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之后
,

拆解评论,我怀疑你在追求这样的东西......

View:

<video controls>
    <source src="{{ $package->video }}" type="video/mp4">
</video>


Model:

public function getVideoAttribute() {
    // 1:
    $path = storage_path('app/package/video.mp4');
    $stream = new \App\Helpers\VideoStream($path);
    $stream->start();

    // 2:
    $fileContents = Storage::disk('local')->get('app/package/video.mp4');
    $response = \Response::make($fileContents,200);
    $response->header('Content-Type',"video/mp4");

    return $response;
}

...

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,'2020'),2,'Black'),3,'Automatic'),4,'Diesel'),5,'10000');