Mysql 通过从其他两个表中进行选择,将数据插入到表中

Mysql 通过从其他两个表中进行选择,将数据插入到表中,mysql,select,insert,Mysql,Select,Insert,最近,我不得不在我已有数百条记录的一个表中插入一个新列。 我想使用INSERT-INTO-SELECTquery从其他表填充该新列。 各表说明如下 saller\u products表,其中每个销售人员项目都有一个唯一的saller\u products\u id,该值应插入表introw\u log CREATE TABLE `salesman_products` ( `salesman_products_id` int(10) NOT NULL PRIMARY KEY, `sales

最近,我不得不在我已有数百条记录的一个表中插入一个新列。 我想使用
INSERT-INTO-SELECT
query从其他表填充该新列。 各表说明如下

saller\u products
表,其中每个销售人员项目都有一个唯一的
saller\u products\u id
,该值应插入表
introw\u log

CREATE TABLE `salesman_products` (
  `salesman_products_id` int(10) NOT NULL PRIMARY KEY,
  `salesman_id` int(10) NOT NULL
  `product_id` int(10) NOT NULL
) ;

INSERT INTO `salesman_products` (`salesman_products_id`, `salesman_id`, `product_id`) VALUES
(1, 1, 1),
(2, 1, 2),
(3, 2, 1),
(4, 1, 3),
(5, 2, 2);
第二个表是
intrown
表,其中我们有
saller\u id
,在查询时应使用该id从
saller\u产品
表中选择数据

CREATE TABLE `inward` (
  `inward_id` int(10) NOT NULL PRIMARY KEY,
  `salesman_id` int(10) NOT NULL
) ;

INSERT INTO `inward` (`inward_id`, `salesman_id`) VALUES
(1, 1),
(2, 1),
(3, 2),
(4, 1),
(5, 2);
第三个表,我想在其中填充列
saller\u product\u id
,这里我们有
intrown
表的主键作为外键,还有
product\u id
,应与向内表格中的
saller\u id
一起使用,以从
saller\u products
表格中选择
saller\u products\u id

CREATE TABLE `inward_log` (
  `inward_log_id` int(10) NOT NULL PRIMARY KEY,
  `inward_id` int(10) NOT NULL,
  `product_id` int(10) NOT NULL,
  `salesman_product_id` int(10) NOT NULL DEFAULT 0
) ;

INSERT INTO `inward_log` (`inward_log_id`, `inward_id`, `product_id`, `salesman_product_id`) VALUES
(1, 1, 1, 0),
(2, 1, 1, 0),
(3, 1, 2, 0),
(4, 2, 2, 0),
(5, 2, 1, 0),
(6, 3, 1, 0),
(7, 5, 2, 0);
我想用
saller\u products\u id
表中的
saller\u products\u id
填充
saller\u products\u id
表中的
saller\u products\u id

CREATE TABLE `inward` (
  `inward_id` int(10) NOT NULL PRIMARY KEY,
  `salesman_id` int(10) NOT NULL
) ;

INSERT INTO `inward` (`inward_id`, `salesman_id`) VALUES
(1, 1),
(2, 1),
(3, 2),
(4, 1),
(5, 2);
我的查询如下,这不会产生预期的结果

INSERT INTO inward_log (salesman_product_id)

SELECT salesman_product_id FROM salesman_products
WHERE salesman_id = 
    (SELECT salesman_id FROM inward_log GROUP BY inward_log_id)
AND product_id = 
    (SELECT product_id FROM inward GROUP BY inward_log_id )

order by inward_log_id
sallers\u product\u id
栏中的预期结果应如下所示

+---------------+-----------+------------+---------------------+
| inward_log_id | inward_id | product_id | salesman_product_id |
+---------------+-----------+------------+---------------------+
|       1       |     1     |      1     |          1          |
|       2       |     1     |      1     |          1          |
|       3       |     1     |      2     |          2          |
|       4       |     2     |      2     |          2          |
|       5       |     2     |      1     |          1          |
|       6       |     3     |      1     |          3          |
|       7       |     5     |      2     |          5          |
+---------------+-----------+------------+---------------------+

你的问题有几个问题:1。您没有给我们提供详细信息表的结构,我只能从您的预期结果部分猜测。2.您还没有给我们任何关于您的表
产品
外观的线索。请填写问题中缺少的详细信息。抱歉@aLuViAn,感谢您指出。我编辑了查询并澄清了存在的更多问题:没有
saller\u id
introw
表中没有
introw\u id
。我假设有一些拼写错误,但这实际上使你的问题无效。请复制并粘贴,然后运行您在问题中提出的每个步骤,并确保没有问题,除了您的问题/问题。实际上,现在一切都好了,我们想将数据插入
inward\u log
表中,数据应从
Sales\u products
表中获取,现在如何从
saller\u products
表中获取数据?我们应该从
introw\u log
表中获取
product\u id
,从
introw
表中获取
saller\u id
,并基于这两个标准,我们应该获取
saller\u product\u id
。由于
introw\u log
表中没有
saller\u id
,因此我们必须从
introw
表中获取它,该表链接到
introw\u log
表您已经找到了它!