Форум программистов, компьютерный форум, киберфорум
PHP: базы данных
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/5: Рейтинг темы: голосов - 5, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 27.10.2018
Сообщений: 2
1
MySQL

Как в MySQL запросе сравнить значение id из таблицы A со значением a_id из таблицы B из последней добавленной записи

27.10.2018, 22:14. Просмотров 967. Ответов 3

Очень тяжело объяснить, вот пример (работаю в phpmyadmin):

У меня есть 2 таблицы:
articles
categories

У articles есть categories_id, который ссылается на id категории.
У categories есть articles_count, который должен отображать, сколько записей есть в articles с данной категорией.

Далее я создал работающий триггер, который срабатывает при добавлении новой записи в articles со следующим кодом:

SQL
1
UPDATE categories SET `articles_count` = `articles_count` + 1
Теперь каждый раз, при добавлении записи в articles, всем articles_count в таблице categories добавляется +1.

Вопрос: как теперь сделать так, чтобы +1 прибавлялось только той записи из categories, в которой id = categories_id из записи, которая триггерит это триггер (то есть из последней записи в articles)
Я знаю что это делается добавлением к коду
SQL
1
WHERE categories.id =
чему?

Ну а если кто-то знает,как добиться задумки другим способом, буду рад выслушить.
Заранее благодарю.
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
27.10.2018, 22:14
Ответы с готовыми решениями:

Вывод последней записи из таблицы mysql
Приветсвую. У меня вот такая ситуация. есть таблица, в ней определенное количество столбцов и...

Как из таблицы access вытащить значение последней записи определенного поля?
Как из таблицы access вытащить значение последней записи определенного поля?

Связь между значением атрибута в записи одной таблицы и наименованием сторонней таблицы
Здравствуйте, уважаемые корифеи! Не удивляйтесь моему вопросу - ответ мне нужен для дипломного...

Как вернуть Id последней добавленной записи
cmd.ExecuteNonQuery(); возвращает количество задействованных строк. Есть ли команда возвращающая...

3
560 / 337 / 87
Регистрация: 15.05.2013
Сообщений: 812
Записей в блоге: 1
28.10.2018, 09:19 2
Лучший ответ Сообщение было отмечено exceedtm как решение

Решение

MySQL
1
2
3
4
5
6
7
DELIMITER $$
CREATE TRIGGER increment_articles_count AFTER INSERT ON articles
FOR EACH ROW
BEGIN
  UPDATE categories SET articles_count = articles_count + 1 WHERE id = NEW.categories_id;
END $$
DELIMITER ;
Не забудь создать триггер на удаление.
1
0 / 0 / 0
Регистрация: 27.10.2018
Сообщений: 2
28.10.2018, 10:50  [ТС] 3
Благодарю за ответ, теперь всё заработало. Если вам не сложно, можете пожалуйста подсказать, что поставить вместо NEW.categories_id в триггер на удаление?

Добавлено через 1 минуту
Благодарю за ответ, теперь всё заработало. Если вам не сложно, можете пожалуйста подсказать, что поставить вместо NEW.categories_id в триггер на удаление?
0
560 / 337 / 87
Регистрация: 15.05.2013
Сообщений: 812
Записей в блоге: 1
28.10.2018, 12:30 4
exceedtm,
MySQL
1
2
3
4
5
6
7
DELIMITER $$
CREATE TRIGGER decrement_articles_count AFTER DELETE ON articles
FOR EACH ROW
BEGIN
  UPDATE categories SET articles_count = articles_count - 1 WHERE id = OLD.categories_id;
END $$
DELIMITER ;
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
28.10.2018, 12:30

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Как получить номер последней добавленной записи?
Есть база данных на Access (возможно потом будет перенесено на MSSQL). Как при добавлении новой...

Как получить индекс последней добавленной записи
Как получить последний добавленный индекс? Добавлено через 11 секунд Почему нельзя использовать...

Как получить id последней добавленной записи в БД в MSSQL
Привет! Народ, кто-нить знает как получить id последней добавленной записи в БД в MSSQL? Нужен...

Как вытащить с помощью php запроса ID последней добавленной записи
Это все конечно хорошо, но если за те милисекунды которые пройдут между INSERT ... и SELECT...

Вывести из таблицы MySQL все записи в виде html таблицы, не зная имена и колличество столбцов
Всем привет. Подскажите как вывести из таблицы MySQL все записи в виде html таблицы не зная имена...

Как в запросе вывести из одной таблицы все значения со значением флага false в этой же таблице
Здравствуйте! У меня есть таблица, котрая имеет поля ид, имя больного, имя врача, статус врача....


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.