0

こんにちは、誰かがこの問題を解決する方法を教えてもらえますか? たとえば、「sales」と「rsales」の 2 つのテーブルがあるとします。私は自分のテーブルにこの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       | 

これは、レポートを作成するときの私の Web ページからのビューです。

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

設定したと思う方法で設定した場合は、2つのクエリが必要になります。

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 つのフィールド、id、sales_receipt、rsales_id を持つ sales_rsales.Get 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 に答える