【发布时间】:2014-05-16 14:42:44
【问题描述】:
我在 MySQL 中的查询有问题,我在很多地方寻找答案。 我想要的是使用表 2 和 3 第 2 列和第 2 列中的数据将数据插入 Table1 第 2 列和第 3 列。
我有以下表格。
Table1 (products):
Column1 = productId (Autoincrementing int)
Column2 = fkCategory (int, Foreign key pointing to the categoryId)
Column3 = fkBrand (int, Foreign key pointing to the brandId)
Table2 (categories):
Column1 = categoryId (autoincrementing int)
Column2 = category (Varchar)
Table3 (brands):
Column1 = brandId (Autoincrementing int)
Column2 = brand (Varchar)
当我进行以下查询时,一切正常,它在表 1 的第 1 列(自动递增键)和第 2 列(我想要的数据)中插入一行数据,但在第 3 列中当然没有:
INSERT INTO products (fkCategory)
Select categories.categoryId
FROM categories
WHERE category = 'Bluser';
现在我想在表 2 和表 3 中的数据的同一查询中向表 1 中同一行的第 2 列和第 3 列添加一个值,并尝试进行以下查询。这个给我的信息是:未知列'products.fkBrand'
INSERT INTO products (fkCategory, fkBrand)
Select categories.categoryId, brands.brandId
FROM categories
INNER JOIN brands ON brands.brandId = products.fkBrand
WHERE category = 'Bluser' and brand = 'Ganni';
我还尝试了以下查询:
INSERT INTO products (fkCategory, fkBrand)
Select categories.categoryId, brands.brandId
FROM products
INNER JOIN categories ON categories.categoryId = products.fkCategory
INNER JOIN brands ON brands.brandId = products.fkBrand
WHERE category = 'Bluser' and brand = 'Ganni';
这个在运行时没有给我带来任何麻烦,但不会向 table1 添加任何值。
我有点迷路了,我想我的问题出在 Where 子句或我加入它的方式上。我已经尝试了很多其他查询,但我不想在问题线程中添加太多代码。
非常感谢任何帮助:)。美好的一天!
【问题讨论】:
标签: java mysql sql foreign-keys inner-join