我有2张桌子,我想加入。第二张桌子很棘手,我会尽力在这里解释一下
以下表格存在疑问:
1)表1
2)table2
+---------+-----------+-------+-----------+------------+-----------------+
| Orderid | name | Sku | row_total | tax_amount | discount_amount |
+---------+-----------+-------+-----------+------------+-----------------+
| 002 | Product1 | Sku1 | 100 | 0.5 | 1.5 |
| 002 | Product2 | Sku2 | 200 | 0.5 | 1 |
| 002 | Product3 | Sku3 | 300 | 0.5 | 0 |
| 002 | Product4 | Sku4 | 400 | 0.5 | 5 |
| 002 | Product5 | Sku5 | 500 | 0.5 | 50 |
| 002 | Product6 | Sku6 | 600 | 0.5 | 0.5 |
| 002 | Product7 | Sku7 | 700 | 0.0 | 10 |
| 002 | Product8 | Sku8 | 800 | 1.5 | 0 |
| 002 | Product9 | Sku9 | 900 | 2 | 2 |
| 002 | Product10 | Sku10 | 1000 | 3 | 30 |
+---------+-----------+-------+-----------+------------+-----------------+
+----------+--------+------------+
| MOrderid | mowner | mrealorder |
+----------+--------+------------+
| 002 | 95 | 3333333 |
| 002 | 100 | 3333333 |
| 002 | 320 | 3333333 |
| 002 | 95 | 3333333 |
| 002 | 504 | 3333333 |
| 002 | 112 | 3333333 |
| 002 | 95 | 3333333 |
| 002 | 99 | 3333333 |
| 002 | 106 | 3333333 |
| 002 | 11 | 3333333 |
+----------+--------+------------+
这是我正在编写的查询以获得我想要的输出,我试图显示我正在寻找的最终结果。
SELECT DISTINCT o.Orderid, o.name, o.Sku, o.row_total, o.tax_amount, o.discount_amount, m.mowner
FROM table1 o
JOIN table2 m ON ( o.Orderid = m.Morderid )
以下是运行后得到的结果
+---------+-----------+-------+-----------+------------+-----------------+--------+
| Orderid | name | Sku | row_total | tax_amount | discount_amount | mowner |
+---------+-----------+-------+-----------+------------+-----------------+--------+
| 002 | Product1 | Sku1 | 100 | 0.5 | 1.5 | 95 |
| 002 | Product2 | Sku2 | 200 | 0.5 | 1 | 95 |
| 002 | Product3 | Sku3 | 300 | 0.5 | 0 | 95 |
| 002 | Product4 | Sku4 | 400 | 0.5 | 5 | 95 |
| 002 | Product5 | Sku5 | 500 | 0.5 | 50 | 95 |
| 002 | Product6 | Sku6 | 600 | 0.5 | 0.5 | 95 |
| 002 | Product7 | Sku7 | 700 | 0.0 | 10 | 95 |
| 002 | Product8 | Sku8 | 800 | 1.5 | 0 | 95 |
| 002 | Product9 | Sku9 | 900 | 2 | 2 | 95 |
| 002 | Product10 | Sku10 | 1000 | 3 | 30 | 95 |
| 002 | Product1 | Sku1 | 100 | 0.5 | 1.5 | 100 |
| 002 | Product2 | Sku2 | 200 | 0.5 | 1 | 100 |
| 002 | Product3 | Sku3 | 300 | 0.5 | 0 | 100 |
| 002 | Product4 | Sku4 | 400 | 0.5 | 5 | 100 |
| 002 | Product5 | Sku5 | 500 | 0.5 | 50 | 100 |
| 002 | Product6 | Sku6 | 600 | 0.5 | 0.5 | 100 |
| 002 | Product7 | Sku7 | 700 | 0.0 | 10 | 100 |
| 002 | Product8 | Sku8 | 800 | 1.5 | 0 | 100 |
| 002 | Product9 | Sku9 | 900 | 2 | 2 | 100 |
| 002 | Product10 | Sku10 | 1000 | 3 | 30 | 100 |
| 002 | Product1 | Sku1 | 100 | 0.5 | 1.5 | 320 |
| 002 | Product2 | Sku2 | 200 | 0.5 | 1 | 320 |
| 002 | Product3 | Sku3 | 300 | 0.5 | 0 | 320 |
| 002 | Product4 | Sku4 | 400 | 0.5 | 5 | 320 |
| 002 | Product5 | Sku5 | 500 | 0.5 | 50 | 320 |
| 002 | Product6 | Sku6 | 600 | 0.5 | 0.5 | 320 |
| 002 | Product7 | Sku7 | 700 | 0.0 | 10 | 320 |
| 002 | Product8 | Sku8 | 800 | 1.5 | 0 | 320 |
| 002 | Product9 | Sku9 | 900 | 2 | 2 | 320 |
| 002 | Product10 | Sku10 | 1000 | 3 | 30 | 320 |
+---------+-----------+-------+-----------+------------+-----------------+--------+
+---------+-----------+-------+-----------+------------+-----------------+--------+
| Orderid | name | Sku | row_total | tax_amount | discount_amount | mowner |
+---------+-----------+-------+-----------+------------+-----------------+--------+
| 002 | Product1 | Sku1 | 100 | 0.5 | 1.5 | 320 |
| 002 | Product2 | Sku2 | 200 | 0.5 | 1 | 95 |
| 002 | Product3 | Sku3 | 300 | 0.5 | 0 | 95 |
| 002 | Product4 | Sku4 | 400 | 0.5 | 5 | 100 |
| 002 | Product5 | Sku5 | 500 | 0.5 | 50 | 106 |
| 002 | Product6 | Sku6 | 600 | 0.5 | 0.5 | 504 |
| 002 | Product7 | Sku7 | 700 | 0.0 | 10 | 112 |
| 002 | Product8 | Sku8 | 800 | 1.5 | 0 | 95 |
| 002 | Product9 | Sku9 | 900 | 2 | 2 | 99 |
| 002 | Product10 | Sku10 | 1000 | 3 | 30 | 11 |
+---------+-----------+-------+-----------+------------+-----------------+--------+
此处的主要问题是mowner
列。它会不断重复每个项目,直到所有mowner
完成。有人可以调查一下,并试着帮助我得到我在这个问题中显示的预期结果。
答案 0 :(得分:1)
好的!,花了一些时间,但是如果你仍然想要两个表,(你可以只将行mowner和mrealorder添加到表1)你需要添加一行,在这个小提琴中你可以执行两个查询并查看结果,您当前的查询是:
SELECT DISTINCT o.Orderid, o.name, o.Sku, o.row_total, o.tax_amount, o.discount_amount, m.mowner
FROM table1 o
JOIN table2 m ON ( o.Orderid = m.Morderid )
我改变了一点
SELECT DISTINCT o.Orderid, o.name, o.Sku, o.row_total, o.tax_amount, o.discount_amount, m.mowner
FROM table1 o
JOIN table2 m ON ( o.Orderid = m.Morderid and o.name = m.Mname)
你可以在这个小提琴中看到整个例子http://sqlfiddle.com/#!9/73bde/3
由于割草者的结果与你“渴望”的结果不一样,你需要解释如何获得该值,当你这样做时,我会把我当前的答案修改为添加它。
此致..