我正在使用2个表,使用相同的列;一个表包含文本,另一个表包含图像;他们使用列listing_id,以便右侧文本显示正确的图像;
我的问题是因为列listing_id是自动递增的,我的第一个表能够插入查询,能够插入文本然后+1列list_id;但是第二个表我使用另一个INSERT INTO查询将没有正确的listing_id,
因为listing_id的某些条目已被删除,这意味着第二个表的listing_id将始终位于第一个表listing_id之后;
如何引用列listing_id?
答案 0 :(得分:2)
您需要在依赖表中创建一个名为“parent_id”的INT列,该列存储它所引用的主表的id。当您从第一个中选择记录时,您将使用第一个字段的auto_increment字段与第二个字段的“parent_id”连接表。
正如MrSlayer所提到的,使用第一个表的新插入ID来更新“parent_id”。 通常在第二个表中具有唯一ID的唯一ID字段,但它不应该是与第一个表的关系的一部分。
如果您不清楚如何获取插入时第一个表auto_increments的id,请使用mysql_insert_id()
。
mysql_query("INSERT INTO table1 ...");
echo "Last inserted record_id in table1 was " . mysql_insert_id();
INSERT INTO table1 (mytextcolumn) VALUES('text');
INSERT INTO table2 (parent_id,image_name) VALUES(LAST_INSERT_ID(),'someimage.png');