Как удалить идентификатор из одной таблицы и идентификатор из другой таблицы, если они связаны с одним объектом? - PullRequest
0 голосов
/ 25 марта 2019

У меня есть две таблицы:

Таблица: ПРИЧИНА

id | name
---|------------
1  | gold_sell
2  | gold_buy
4  | Silver_sell 

Таблица: REASON_TO_TRANSACTION

reason_id | transaction_type
----------|-------------------
1         | sell
2         | buy
4         | pko

, где id из таблицы reason связано с reason_id из reason_to_transaction.

Я хочу удалить все строки с id = 1 из этих двух таблиц.

Может кто-нибудь мне помочь?

Я использую SQL Server (phpmyadmin).

Переменная name предназначена для получения текущего activeItem и его удаления.

Я написал следующую команду SQL:

DELETE rt 
  FROM reason_to_transaction rt 
  INNER JOIN reasons r 
    ON id=reason_id 
  WHERE reasons.id=reason_to_transaction.reason_id 
    AND name = 'gold_sell'

У меня также есть этот угловой код:

$scope.deleteItem = function(){
        console.log($scope.activeItem);
        var objectToSave = {        
            name: $scope.activeItem.name,
            id: $scope.activeItem.id
        };

        if($scope.activeItem.id){


                defaultAdapter.query('DELETE rt FROM reason_to_transaction rt INNER JOIN reasons r ON r.id = tr.reason_id WHERE name = :name',
              { replacements: objectToSave, type: Sequelize.QueryTypes.UPDATE }
            ).then(projects => {
              console.log(projects);
              $scope.editMode = false;
                $scope.activeItem = false;
                $scope.refresh();
            });
        } else {         
                defaultAdapter.query('DELETE rt FROM reason_to_transaction rt INNER JOIN reasons r ON r.id = tr.reason_id WHERE name = :name',

              { replacements: objectToSave, type: Sequelize.QueryTypes.UPDATE }
            ).then(projects => {
              console.log(projects);
              $scope.editMode = false;
                $scope.activeItem = false;
                $scope.refresh();
            });

        }
    };

А также имейте html форму отправки:

<div class="editMode1" style="display: none;">
<div class="form">
<form ng-submit="saveItem(reasonsForm.$valid)" name="reasonsForm">
<div class="row">
        <div class="col-sm-6">
            <div class="form-group">
                <label for="currency_code">Име на основание</label>
                <input type="text" class="form-control" required ng-model="activeItem.name" placeholder="Име на основание за редактиране" />
            </div>



        </div>
    </div>
    <button class="btn btn-primary" ng-disabled="reasonsForm.$invalid" type="submit">Save</button>
    <button class="btn btn-primary" type="submit" ng-click="deleteItem()">Delete</button> <!--ng-click="createUser()"-->

    <button class="btn btn-primary" id="cnlbtn" type="button">Cancel</button>


</form>
</div>
</div>
...