获取 AUTO INCREMENTED 行并将其插入关联 table?
Getting and inserting AUTO INCREMENTED rows into an associative-table?
我有两个输入:
Basket Name: <input type="text">
和
Fruits<select name="fruits">
// Some java code that populate my drop down list from a SELECT sql
// that is pulling from my database table called 'Fruits'
// i.e. <option value='SELECT fruitID FROM fruits'> 'SELECT fruitName FROM fruits' </option>
...
</select>
并且我想在提交 <form>
时同时执行以下两个 SQL 插入:
SQL 1: 将 'Basket Name'
插入一个名为 'Baskets'
;
的 table
SQL 2:将'fruitID'
(即<option value = "01"> Apple </option>
)插入到名为[=19=的关联table中]
我的table结构:
篮子 table:
basketID -> AUTO_INCREMENT int(11), NOT NULL
篮子名称 -> varchar(255)
BASKETS_FRUITS table:
basketID_FK -> 来自篮子 'basketID' 的外键 table
fruitID_FK -> 'fruitID' 来自 Fruits table
的外键
水果 table:
fruitID_FK -> AUTO_INCREMENT int(11), NOT NULL
水果名称 -> varchar(255)
如果引用的 basketID
是 AUTO-INCREMENTED,我如何获得当前的 basketID_FK
?我不太确定如何编写 SQL 语法来获取 AUTO-INCREMENTED 列的值。
编辑:
我会做类似的事情吗:
INSERT INTO baskets_fruits (basketID_FK, fruitIDFK)
(SELECT baskets.basketID, fruits.fruitID FROM baskets, fruits
WHERE baskets.basketID = "Foo" AND fruits.fruitID = "BAR");
但是 "Foo"
和 "Bar"
语法会是什么样的呢?
这样的东西行得通吗?这显然是在插入之后,然后你可以在之后操作任何你想要的东西。
SELECT * FROM BASKETS
INNER JOIN BASKETS_FRUITS ON basketID = basketID_FK
WHERE basketName = 'whatever the basket name is'
这会根据特定的篮子名称为您提供密钥,然后您可以在其中找到 fruitID_FK(如果需要)。
我有两个输入:
Basket Name: <input type="text">
和
Fruits<select name="fruits">
// Some java code that populate my drop down list from a SELECT sql
// that is pulling from my database table called 'Fruits'
// i.e. <option value='SELECT fruitID FROM fruits'> 'SELECT fruitName FROM fruits' </option>
...
</select>
并且我想在提交 <form>
时同时执行以下两个 SQL 插入:
SQL 1: 将 'Basket Name'
插入一个名为 'Baskets'
;
SQL 2:将'fruitID'
(即<option value = "01"> Apple </option>
)插入到名为[=19=的关联table中]
我的table结构:
篮子 table:
basketID -> AUTO_INCREMENT int(11), NOT NULL
篮子名称 -> varchar(255)
BASKETS_FRUITS table:
basketID_FK -> 来自篮子 'basketID' 的外键 table
fruitID_FK -> 'fruitID' 来自 Fruits table
的外键水果 table:
fruitID_FK -> AUTO_INCREMENT int(11), NOT NULL
水果名称 -> varchar(255)
如果引用的 basketID
是 AUTO-INCREMENTED,我如何获得当前的 basketID_FK
?我不太确定如何编写 SQL 语法来获取 AUTO-INCREMENTED 列的值。
编辑:
我会做类似的事情吗:
INSERT INTO baskets_fruits (basketID_FK, fruitIDFK)
(SELECT baskets.basketID, fruits.fruitID FROM baskets, fruits
WHERE baskets.basketID = "Foo" AND fruits.fruitID = "BAR");
但是 "Foo"
和 "Bar"
语法会是什么样的呢?
这样的东西行得通吗?这显然是在插入之后,然后你可以在之后操作任何你想要的东西。
SELECT * FROM BASKETS
INNER JOIN BASKETS_FRUITS ON basketID = basketID_FK
WHERE basketName = 'whatever the basket name is'
这会根据特定的篮子名称为您提供密钥,然后您可以在其中找到 fruitID_FK(如果需要)。