PHP-MySQL 3表选择,更新,删除和插入与外键链接

时间:2011-03-28 18:53:29

标签: php mysql sql foreign-keys

我在MySQL中使用外键链接的3个InnoDB表有问题,我的表是:

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表单,也可以通过单个查询插入记录,大小(输入类型=文本),价格(输入类型=文本),选择子类别(选择带选项的类型字段),类别(选择带选项的类型字段),如果是,那么如何?

请帮助,紧急。

1 个答案:

答案 0 :(得分:0)

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

更新和删除在某些情况下也可以使用join(不在foreignkeys上),但您可能只需要更改product表。 insert必须在各个表上。