我有两种类型的产品。我为那些(t1,t2)创建了两个表。我也有一个交易表(t3)我想用t1加入t3,但如果没有匹配则加入t2
T1
|p_id|p_description|color|
|0001| xyz |blue |
|0002| bcd |red |
T2
|p_id|p_description|weight||size|type|
|e-01| xmay |3.25| | 50| s |
|s-02| cmay |2.32| | 25| x |
T3
|trn_id| p_id |cost|
| 1 | 0001 | 150|
| 2 | s-02 | 225|
答案 0 :(得分:2)
您可以使用UNION语句:
SELECT a.trn_id, a.p_id, a.cost, b.p_description
FROM t3 a
LEFT JOIN t1 b ON a.p_id = b.p_id
WHERE b.p_id IS NOT NULL
UNION SELECT a.trn_id, a.p_id, a.cost, b.p_description
FROM t3 a
LEFT JOIN t2 b ON a.p_id = b.p_id
WHERE b.p_id IS NOT NULL
此代码将为您提供一个表格,其中包含t3与t1重合的所有结果,在此之后,在同一个表格中,t3的结果与t2重合