0

你好,有人可以告诉我如何解决这个问题吗?比如说我有两个表 "sales" 和 "rsales" 。我的表格有这个 ff 数据。

销售数据

receipt |  date       | total | 1st_id | last_id |
129999  | 09/26/2013  |  1220 |   1    |   2     |
139999  | 09/27/2013  |  2320 |   3    |   4     |


data from rsales
id | product_name |
1  |   33uf       |
2  |   44uf       |
3  |   7sss       |
4  |   8sss       | 

这是我在做报告时从我的网页上看到的

receipt |  date       | total | 1st_id | last_id | + |
129999  | 09/26/2013  |  1220 |   1    |   2     | + |
139999  | 09/27/2013  |  2320 |   3    |   4     | + |

所以就在这里。我的问题是,当我单击“+”时,它将从 rsales 中选择数据然后显示。所以假设我点击收据为 129999 的“+”。所以预期的输出必须是这样的。

receipt |  date       | total | 1st_id | last_id | + |
129999  | 09/26/2013  |  1220 |   1    |   2     | + |
id      | product_name |
1       |   33uf       |
2       |   44uf       |
139999  | 09/27/2013  |  2320 |   3    |   4     | + |

那为什么会这样显示呢?这是因为来自 sales 的 1st_id 和 last_id = 来自 rsales 的 id 1 和 2。很难解释,但我认为我给出的例子足以理解我想要做什么。希望你的想法。我真的需要想法。

4

1 回答 1

1

如果您按照我认为设置的方式进行设置,则需要两个查询:

SELECT 1st_id, last_id FROM sales WHERE receipt=?

接着

SELECT Id, product_name FROM rsales WHERE Id>=[variable from 1st_id] AND Id<=[variable from last_id];

如果我这样做,我会设置 3 张桌子

具有 3 个字段的 sales_rsales,id、sales_receipt、rsales_id。去掉 1st_id 和 last_id 使用它来跟踪每个收据的产品,那么 SQL 将很容易:

SELECT rsales.Id, rsales.product
  FROM rsales JOIN sales_rsales ON rsales.Id=sales_rsales.rsales_id
  JOIN sales ON sales.receipt=sales_rsales.sales_receipt
  WHERE sales.receipt=?
于 2013-09-26T15:31:29.837 回答