Может кто-нибудь, пожалуйста, помогите мне с этим запросом SQL? - PullRequest
0 голосов
/ 26 августа 2011

Так что на моей работе меня попросили исправить код sql, работающий в базе данных mysql 5, и я застрял, также я не уверен, что это подходящее место, чтобы сделать это, но есть небольшая награда за пиво по этому вопросу. Ну пошлите верхним проголосовавшим вопрос несколько пивных денег.

В основном, заявление должно делать следующее: Удалить строку из Customers_basket, где products.products_quantity <1 AND LOWER (inventory_t_product_minimum_stock.minimum_quantity) = 'nla' </p>

Это текущий оператор:

DELETE FROM customers_basket 
WHERE EXISTS
    (SELECT products_id
        FROM inventory_t_product_minimum_stock
        WHERE customers_basket.products_id = 
            inventory_t_product_minimum_stock.products_id            
        AND LOWER(inventory_t_product_minimum_stock.minimum_quantity) = 'nla')

Так что на самом деле все, что нужно изменить, это добавить информацию о products_quantity <1, однако эта информация поступает из другой таблицы. </p>

Написание простого левого соединения для 3 таблиц не составило бы труда, однако меня беспокоит то, что этот код выполняется, когда пользователь входит в систему, и объединение трех больших таблиц будет для нас довольно большой проблемой, я думаю. Я на самом деле разработчик C и JavaScript, некоторые базы данных немного за пределами моей области знаний. Будет ли один из гуру sql там иметь хорошее решение без необходимости изменять нашу схему БД?

редактировать * правописание

1 Ответ

4 голосов
/ 26 августа 2011

Пока ваши таблицы правильно проиндексированы, и вы объединяетесь в индексированных полях, и ваши фильтры нацелены на индексированное поле, запрос должен работать довольно хорошо.

Кроме того, вы удаляете только элементы в таблице корзины клиента для пользователя, который входит в систему, или для всех продуктов, количество которых составляет <1? </p>

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...