2012-02-28 58 views
0

我想加入三個表,所有結構都相同。但是,這三個表中的任何一個都可能存在或不存在相關ID。加入3個表使用ID

TABLE A id name price sales 
TABLE B id name price sales 
TABLE C id name price sales 

每個表格表示某一週產品的價格。所以表A是本週,上週是B,而前一週是C。

我會發布代碼,但老實說,我擁有的一切都沒有工作。

+0

我會補充一點,我相信我需要一張可以存在於任何表格中的ID。如果是這樣,我會從那裏選擇ID,然後加入其他三個表。請確認是否有道理。 – 2012-02-28 03:41:38

+0

您是否想要一個包含至少存在於表A,B或C中的所有ID的記錄的表(並且對於沒有ID的列爲NULL)? – 2012-02-28 03:45:26

+0

你沒有真正提供足夠的信息讓任何人理解這個問題。正如@波希米亞指出的那樣,桌子的設計是完全不可行的。這是功課嗎?如果是這樣,請添加家庭作業標籤。 – 2012-02-28 03:50:59

回答

2

您的數據庫設計存在疑問。你應該有一個銷售,有一個「日期」一欄,這樣的事情:

PRODUCT: id name 
SALES: id date product_id price sales 

如果你不這樣做,你必須每週沖洗掉每個表中的所有行並在下週加載......瘋狂。

除此之外,你的問題是你想要

0

如果所需要的是選擇一行從任何表A,B或C,然後匹配wanted_id什麼很清楚:

SELECT * FROM A UNION B UNION C WHERE id=wanted_id;