Таблицы PHP-MySQL 3 выбирают, обновляют, удаляют и вставляют, связанные с внешним ключом

У меня проблема с 3 таблицами InnoDB в MySQL, связанными с внешним ключом. Мои таблицы:

Table1 name - products

PID(PK, bigint, auto inc), 
CATALOG_NO, 
PRODUCT_NAME, 
COMPOSITION, 
SIZE, 
PRICE, 
SUBCAT_ID(foreign Key, index, bigint, keyname-FK_products_1)

Table2 name - subcategory

SUBCAT_ID(PKey, bigint, auto inc),
SUBCATEGORY_NAME, CAT_ID(fkey, bigint)


Table3 name - category

CAT_ID(Pkey, bigint, auot inc),
CAT_NAME

1. Какой правильный запрос для ВЫБОРА и перечисления данных путем объединения 3 таблиц, которые должны отображать результат как:

ProductsPID, CATALOG_NO, PRODUCT_NAME, COMPO, SIZE, PRICE, SUBCATEGORY_NAME, CAT_NAME

2. Каков правильный способ ОБНОВИТЬ и УДАЛИТЬ указанные выше объединенные записи, используя один запрос через одну форму?

3.Можно ли вставлять записи также с помощью одного запроса, используя единую html-форму, содержащую такие поля, как название продукта (тип ввода = текст), номер каталога (тип ввода = текст), состав (тип ввода = текст), размер ( тип ввода=текст), цена (тип ввода=текст), выбрать подкатегорию (выбрать поле типа с параметрами), категорию (выбрать поле типа с параметрами), если да, то как?

ПОМОГИТЕ ПОЖАЛУЙСТА, СРОЧНО.


person Henry    schedule 28.03.2011    source источник


Ответы (1)


SELECT
  p.PID AS ProductsPID,
  p.CATALOG_NO, 
  p.PRODUCT_NAME, 
  p.COMPOSITION AS COMPO, 
  p.SIZE, 
  p.PRICE, 
  s.SUBCATEGORY_NAME,
  c.CAT_NAME
FROM products p
  INNER JOIN subcategory s
    ON p.SUBCAT_ID = s.SUBCAT_ID
  INNER JOIN category c
    ON s.CAT_ID = c.CAT_ID

update и delete также могут использовать объединение в некоторых случаях (не для внешних ключей), но вам, вероятно, нужно только изменить таблицу продуктов. вставка должна быть в отдельных таблицах.

person bw_üezi    schedule 28.03.2011
comment
Привет, спасибо за вашу ценную помощь, я могу правильно отображать результаты, но моя основная проблема заключается в обновлении и удалении, используя форму, как я могу обновить таблицу продуктов, которая также изменит подкатегорию и категорию конкретного продукта, как я хочу дать пользователю возможность выбрать cat n subcat из выпадающего списка? То же самое, как я могу добавить продукт в таблицу продуктов, используя форму, форму, которая будет иметь поля ввода пользователя: имя продукта, номер каталога, состав, размер, цена, подкатегория (предварительно заполненный раскрывающийся список для выбора варианта) и категория (предварительно заполненный выпадающий список для выбора варианта) - person Henry; 30.03.2011
comment
В ваших текущих таблицах категория неявно задается выбранной подкатегорией. Но, как это выглядит, этот дизайн не то, что вы хотите. Вероятно, вам придется переместить столбец CAT_ID из таблицы subcategory в таблицу products. - person bw_üezi; 30.03.2011
comment
Могу ли я сделать это через php или мне нужно сделать это вручную с помощью панели phpmyadmin, как можно переместить этот столбец, не теряя и не нарушая данные. - person Henry; 30.03.2011
comment
Это просто идея изменить структуру таблицы... Вы должны взвесить все за и против, прежде чем делать это. перемещение столбца можно выполнить, 1. создав новый столбец, 2. скопировав данные, используя, например. вставить оператор с подзапросом, 3. после проверки удалить старый столбец. - person bw_üezi; 30.03.2011