Данные из одной таблицы использовать при записи в другую таблицу

Мурзик

Новичок
Здравствуйте. Я не могу разобраться. У меня вот такой код
PHP:
<?
mysql_connect("localhost", "root", "");
mysql_select_db("is");
echo 'Разность подсчитана!';
mysql_query ("SELECT
    *
FROM
    teachers
    INNER JOIN
        sovmestitel
    ON
        teachers.id_sovmestitel=sovmestitel.id_sovmestitel
        INNER JOIN
        pol
    ON
        teachers.id_pol=pol.id_pol
        INNER JOIN
        dolzhnost
    ON
        teachers.id_dolzhnost=dolzhnost.id_dolzhnost
        INNER JOIN
        nagryzka_na_god
    ON
        teachers.id_nagryzka=nagryzka_na_god.id_nagryzka");
mysql_query ("UPDATE `teachers` SET `raznost`= `nagryzka_na_god.nagryzka` - `sum_otrab`");

?>
вот так выглядит таблица в которой должен быть результат

Вот схема базы данных

Нужно чтобы подсчитывалась разность между nagryzka и sum_otrab
 

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
Вычитание строковых данных из строковых данных, мило. Еще милей только адовые названия колонок и таблиц.

Я бы начал с приведения всего этого в порядок.
 

Мурзик

Новичок
Вычитание строковых данных из строковых данных, мило. Еще милей только адовые названия колонок и таблиц.

Я бы начал с приведения всего этого в порядок.
Это я потом сделаю. Сейчас надо быстрее с этим разобраться, а я запуталась:(
 

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
Значит надо брать книгу по базе данных и читать. Быстро у нас ничего не бывает.

Ну и не мешало бы понять для начала что же ты делаешь и как этого достичь. В частности почему второй запрос у тебя не будет работать, а точнее - будет работать неправильно.
 

Adelf

Administrator
Команда форума
почему нагрузка - это строка, а не число?
 

Мурзик

Новичок
Значит надо брать книгу по базе данных и читать. Быстро у нас ничего не бывает.

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

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
@Adelf, меня вот больше интересует почему там только mysql_query и ни одного *_fetch_*()
 

Мурзик

Новичок
@Adelf, меня вот больше интересует почему там только mysql_query и ни одного *_fetch_*()
Потому что вывод массива в таблицу в другом файле находится. А этот файл только выполняет подсчет разности. Не нужно так доскандально разбираться, мне лишь нужно помочь понять как правильно записать подсчет разности связанных таблиц и запись
 

AnrDaemon

Продвинутый новичок
А сами разбираться, значит, не хотите?… Обязательно нужен кто-то, кто разберётся за вас? Может, ещё и код весь за вас написать?
 

AnrDaemon

Продвинутый новичок
"Ребята, не верьте девчатам из чата. У них уже дети и даже внучата. Ещё борода и прокуреный свитер. А рядом стоит как минимум литр."
 

Andkorol

Новичок
А в чем вообще смысл вынесения `nagruzka` в отдельную таблицу `nagryzka_na_god` ?
Почему бы просто не разместить это поле в таблице `teachers` – и не морочить голову?
 

Мурзик

Новичок
А в чем вообще смысл вынесения `nagruzka` в отдельную таблицу `nagryzka_na_god` ?
Почему бы просто не разместить это поле в таблице `teachers` – и не морочить голову?
Смысл в том, что в этой таблице только определенные значения часов нагрузки. Они выбираются при добавлении из выпадающего списка.
 

Andkorol

Новичок
Смысл в том, что в этой таблице только определенные значения часов нагрузки. Они выбираются при добавлении из выпадающего списка.
И что?
Да пусть эти значения хоть из Лунного календаря выбираются
Что мешает разместить поле `nagruzka` в таблице `teachers`?
Связь-то 1:1 – зачем городить отдельную таблицу?
Чтобы что?
 
Сверху