条件加入mysql

时间:2017-06-02 13:52:01

标签: mysql

我有两种类型的产品。我为那些(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|

1 个答案:

答案 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重合