2013-03-15 2 views
0

Надежды кто-то может помочь ...Обновления выбранной таблицы записи с помощью другой таблицы (PHP)

У меня есть две таблицы, содержащие уловы рыбы и регистрируя личные рекорды каждого рыболова. То, что я сейчас сделал, добавляет больше видов к вечно растущему списку.

Итак, теперь я создал резервную копию старой базы данных (catches_old) и создал новую таблицу (ловит).

Уловы имеют все виды, установленные на ноль.

Единственный способ получить уникальную запись - использовать FishName и Angler вместе.

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

Я пробовал несколько способов, но терпел неудачу.

Стол Old (Specie, FishNm, Position, Fisherman, lb, oz, dr, Drams, PegName, Date) Стол Новый - это то же самое.

Стол Старый содержит - старые записи из уловов. Стол новый - это, в основном, сброс всех записей с дополнительными именами рыб, которые нужно поймать.

В таблице Ввод содержит все названия рыб и сброс до 0 драм.

Стол Old теперь необходимо обновить таблицу New с помощью записей об уловах прошлых уловов. Уловы, которые еще не были пойманы на старом столе, не нужно переносить, а только старые уловы.

SAMPLE DATA - (не точные расчеты драм лол)

Carp - Wobbles - 2 - David Williams - 12 - 4 - 6 - 897 - Willow Island - 21/05/1999 
Carp - Fanta - 1 - David Williams - 14 - 7 - 9 - 900 - Bay of Dreams - 14/05/2004 
Goldfish - Harry - 1 - Fred Ball - 1 - 1- 2 - 258 - Willow Island - 12/05/2010 
Goldfish - Whipper - 2 - - 0 - 0- 0- 0- - 
Goldfish - Harriet - 3 - David Williams - 0 - 15 - 2 - 251 - The Fair - 23/09/2012 

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

+3

Пожалуйста, разместите свои структуры таблиц, некоторые данные образца и одну из ваших предыдущих попыток .. также, для чего это RBDMS? –

+0

Добавили дополнительную информацию. –

ответ

0

Если вы хотите взять данные из старого и вставить его в новый, используйте запрос вставки с помощью оператора select. Он будет вставлять все соответствующие записи. Вы не обязательно должны использовать PHP, просто использовать MySQL запрос:

INSERT INTO NewTableName (Field1, Field2, Field3, Weight) 
SELECT Field1, Field2, Field3, Weight) 
FROM OldTableName 
WHERE Weight > 0 

Обратите внимание, что порядок полей должны совпадать.

+0

Будет ли INSERT работать с записями, которые уже там? Нужно ли мне использовать обновление, так как все записи установлены в ноль в новой таблице. –

+0

Это не повредит существующим записям. Тем не менее, я укажу, что если у вас есть первичный ключ или уникальный набор ключей, он будет терпеть неудачу, если он найдет дубликат. Здесь вам нужно решить: «Я хочу добавить только записи, которые еще не находятся в новой таблице?» или «я хочу перезаписать существующие записи в новой таблице при вставке из старой таблицы?» – Raythe

+0

Спасибо Raythe. Я хочу обновить записи в новой таблице с помощью записей из старой таблицы. Поскольку новая таблица содержит все записи для каждой рыбы для всех, но в нуле. Поэтому обновление этих записей со старыми будет сохранять свое место в отношении той рыбы, которую они поймали. –

Смежные вопросы