表1
| Customer_ID | Template_ID
---------------------
| C1 | T1 |
| C1 | T2 |
---------------------
表2
---------------------
| Template_ID | Product_ID
---------------------
| T1 | P1 |
| T1 | P5 |
| T1 | P5 |
| T2 | P10 |
| T2 | P45 |
预期的加入查询结果:
------------------------------------------
| Customer_ID | Template_ID | Product_ID
------------------------------------------
| C1 | T1 | P1
| C1 | T1 | P5
| C1 | T2 | P10
| C1 | T2 | P45
.
.
对于模板,我只想像上面那样获得唯一的Product_ID。目前,我的查询返回的P5两次,
.
.
| C1 | T1 | P5
| C1 | T1 | P5
.
.
如何在查询级别处理此问题?
答案 0 :(得分:0)
使用不同的
select distinct t1.*,t2.productid
from table1 t1 join table2 t2 on t1.Template_ID =t2.Template_ID
答案 1 :(得分:0)
使用DISTINCT
消除重复项。它不仅适用于第一列,而且适用于整行。
例如:
select distinct t1.customer_id, t1.template_id, t2.product_id
from t1
join t2 on t2.template_id = t1.template_id
答案 2 :(得分:0)
您只需GROUP BY
您要唯一的字段,因此Product_ID:
SELECT Customer_ID, Template_ID, Product_ID
FROM table1
JOIN table2 using ( Template_ID )
GROUP BY Product_ID;
答案 3 :(得分:0)
请尝试这个。
SELECT
DISTINCT A.Customer_ID ,A.Template_ID ,B.Product_ID
FROM
table1 AS A
INNER JOIN table2 AS B
ON A.Template_ID = B.Template_ID