销售数据
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。这很难解释,但我认为我给出的例子足以理解我想做什么。希望你的想法。我真的需要点子。
答案 0 :(得分: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=?