檢索數據我有兩個表:創建一個SQL查詢從兩個表中
T_STOCK
:主鍵是id
,seller
,和其他一些領域,讓說a
和b
。 T_FLOW
:主鍵是(id
+ startdate
)以及其他一些字段,例如c
和d
。
我想返回從T_STOCK
關於特定seller
每個記錄的所有列的查詢,但在T_FLOW
表中的列(startDate
,c
和d
)完成。
T_STOCK
和T_FLOW
之間的關係基於id
屬性。 每當T_STOCK
中存在具有特定ID的記錄時,此ID至少有一條記錄存在於T_FLOW
中。
然而,可能發生不止一個紀錄T_FLOW
存在。在這種情況下,我只能考慮最近的(即max(startDate)
)。
在別人的話,如果我們有以下的表格內容:
+---------------------+
| T_STOCK |
+----+--------+---+---+
| ID | SELLER | a | b |
+----+--------+---+---+
| 01 | foobar | 1 | 2 |
+----+--------+---+---+
| 02 | foobar | 3 | 4 |
+----+--------+---+---+
| 03 | foobar | 5 | 6 |
+----+--------+---+---+
+---------------------------+
| T_FLOW |
+----+------------+----+----+
| ID | StartDate | c | d |
+----+------------+----+----+
| 01 | 01/01/2010 | 7 | 8 |
+----+------------+----+----+
| 02 | 01/01/2010 | 9 | 10 |
+----+------------+----+----+
| 02 | 07/01/2010 | 11 | 12 |
+----+------------+----+----+
| 03 | 03/01/2010 | 13 | 14 |
+----+------------+----+----+
| 03 | 05/01/2010 | 15 | 16 |
+----+------------+----+----+
查詢的結果一定是:
+----+--------+---+---+------------+----+----+
| ID | SELLER | a | b | startDate | c | d |
+----+--------+---+---+------------+----+----+
| 01 | foobar | 1 | 2 | 01/01/2010 | 7 | 8 |
+----+--------+---+---+------------+----+----+
| 02 | foobar | 3 | 4 | 03/01/2010 | 11 | 12 |
+----+--------+---+---+------------+----+----+
| 03 | foobar | 5 | 6 | 01/01/2010 | 15 | 16 |
+----+--------+---+---+------------+----+----+
我怎樣寫我的查詢呢?
你的關係似乎有點怪我。你的股票'PK'是'(id,seller)',你可以擁有兩個具有相同'id'的股票,但流量只與'id'相關。這是故意的嗎? – Quassnoi 2010-01-15 11:46:46
+1爲您的ASCII藝術! – 2010-01-15 11:49:14
@Quassnoi,是的,這是故意的:) – romaintaz 2010-01-15 12:38:47