mysql 两表关联 主键自增加 插入数据问题

比如说我现在这里有两张表。。
一张商品基本信息表basic结构如下:
字段名称
product_id (商品ID 主键 自动增长)
title (商品标题)
price(商品价格)
commentCount(商品评论数量)

一张商品详细参数表attr
attr_id (属性ID 主键 自动增长)
attr_name(参数名称)
attr_value(参数值)
product_id(商品ID)

当我要将一个商品的所有信息放到这两张表里的时候。。
insert into basic values (null,'华硕笔记本最新款','3800.00','8026'); 先将商品的基本信息插入basic表
insert into attr values(null,'品牌','华硕','这里的商品ID该写什么呀')
insert into attr values(null,'型号','AX550','这里的商品ID该写什么呀')
。。。其他参数。。

最主要我最后是想关联查询。通过商品参数表查询一个商品都有哪些参数。因为每个商品的参数是不太一样的。

求解释。。老大神。。高分送上。高人现身吧。。

可用函数     mysql_insert_id()    获取最新插入数据库中数据的product_id。


直接输出 mysql_insert_id() 返回的是最新插入数据的ID ;


 如果你的product_id是 unsigned int,或者 bigint 的 。那么,可能是返回的是错误的。而要用 LAST_INSERT_ID()代替。

insert into basic values (null,'华硕笔记本最新款','3800.00','8026');

$product_id = mysql_insert_id();  //获取刚插入product的id

insert into attr values(null,'品牌','华硕',"$product_id");
insert into attr values(null,'型号','AX550',"$product_id");

`````````````````

可左关联表查询:

SELECT * FROM attr LEFT JOIN basic ON attr.product_id = basic.product_id;

温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2018-01-03
刚好看到就说下。
一、详细参数表 的product_id 对应的外键应该是基本表basic的product_id。
二、通过商品参数表 关联查询,使用join会耗费许多系统资源不建议, 直接如下使用效率更高 select * from attr b where produc_id =(select product_id from attr a where ( 你指定的参数表具体条件) ) 结果集应该为改参数表对应的具体商品所有的参数详情。
另外如果想要查询不同商品的及其参数的详情 就是指查找参数表为product_id 基本表(商品名以及价格) 参数表(该商品的所有参数) 可以使用group by 可以解决。本回答被网友采纳
第2个回答  2014-01-10
这些其实分布完成,不过,如果你想一部完成,你要研究下mysql的触发器,你只要给一个商品INSERT执行绑定一个trigger,就可以实现同步,具体语法你百度下,这个比较实际,省了不少代码,你唱早了触发器后,可以多次使用

mysql 两表关联 主键自增加 插入数据问题
可用函数 mysql_insert_id() 获取最新插入数据库中数据的product_id。直接输出 mysql_insert_id() 返回的是最新插入数据的ID ;如果你的product_id是 unsigned int,或者 bigint 的 。那么,可能是返回的是错误的。而要用 LAST_INSERT_ID()代替。insert into basic values (null,'华硕笔记本最...

mysql 循环插入数据且主键自增
其实设置id为自增类型的话,在每插于一条记录后,都会自动加1.所以主键是肯定存在的,你上面的那条·语句,我不知道为什么不能执行,你在几看看是不是哪里打错了!才导致这条语句无话执行!

mysql中id主键自增的表中如何插入内容?
插入时 不插入主键字段就可以了,例如:INSERT INTO user(`username`,`age`,)VALUES ('lisi',11);

mysql设置了主键自增,但java插入仍需要插入主键内容,如果不插入提示类型...
有设置主键自增的,要把需要插入的列名都列出来(不需要主键列),这样就可以。

MySQL手动插入数据时怎么让主键自增!
主键一般要设置成自增。所谓自增,就是在插入的时候,该字段不需要赋值,会自动+1;如果我的表有id,name两个字段,id自增。插入的时候只需这样:insert into tablename(name)values('zhangsan');\/\/id会自动有值 如果你没有自增,那就要指明字段了:insert into tablename(id,name)values(1,'...

mysql数据插入问题
一、MySQL中数据插入可以通过INSERT语句完成。基本语法为:INSERT INTO 表名 VALUES 。例如,插入一条名为“张三”的数据到名为“users”的表的“name”列中,可以使用INSERT INTO users VALUES 。二、1. INSERT语句的基本结构:INSERT语句是MySQL中用于插入数据的基本命令。其格式如上所述,首先需要...

MySQL主键自增值为什么有“空洞”?
1、建表,包含主键及唯一约束 2、写入初始测试数据 insert方式插入数据在处理过程中发生主键传统等错误时候,语句会被终止,并告知错误的原因。而使用insert ignore的方式进行数据插入,则会忽略插入错误的行继续插入没有问题的行记录,最终以warning进行提示。在测试过程中惊奇地发现测试表中的主键自增列发生...

MySql主键自增长。在插入语句时必须指定ID,否则就出错, 以下是源码...
或 insert into new_mobile(id,mobile_name,phone_name,`date`)values(null,'11','22','2011-07-13');不要给id这一列插入具体的数值,否则自增无效 另外你的表结构里date这一列以后最好不要叫这个列名,因为date本身是sql关键字,有些程序员在写sql语句的时候,不喜欢在列名两边加上``,这...

MySQL 让有数据的表 主键从1开始连续自增
当需要MySQL中的数据表以连续的数字1、2、3...自增作为主键时,可以遵循以下步骤操作:步骤一:调整字段属性针对InnoDB引擎的表,首先取消该字段的自动递增功能,移除“不是null”的约束,并且移除主键标识。操作如下图所示:而对于MyISAM引擎,同样取消自动递增,去除非null约束和主键,然后将自动递增的值...

MySQL集群中的ID自增问题mysql中id自增集群
原因分析 在MySQL中,大多数表都会采用自增ID作为主键,自增ID是MySQL特有的一个功能,可以让我们自动为每一行数据分配一个唯一的ID值。但是,在MySQL集群环境下,这种自增ID会存在问题。当多个节点同时处理同一行数据时,由于不同节点之间的数据同步延迟,可能会出现两个节点都分配了相同的ID值,从而导致...

相似回答