我有多个表格如下:
表1:产品
+-----+----------+--------+---------------------+
| id | biz_id | name | message |
+-----+----------+--------+---------------------+
| 1 | 1 | test1 | One tow three |
| 2 | 1 | test1 | One tow three |
| 3 | 1 | test1 | One tow three |
| 4 | 2 | test2 | hello world |
| 5 | 2 | test2 | hello world |
+-----+----------+--------+---------------------+
表2:图像
+-----+----------+--------------+-------------------+
| id | biz_id | product_id | path |
+-----+----------+--------------+-------------------+
| 1 | 1 | 1 | img/qwert1.jpg |
| 2 | 1 | 2 | img/qwert2.jpg |
| 3 | 1 | 3 | img/qwert3.jpg |
| 4 | 2 | 4 | img/qwery4.jpg |
| 5 | 2 | 5 | img/qwert5.jpg |
+-----+----------+--------------+-------------------+
如何在连接多个表时避免在mysql中出现重复?
我的查询是加入两个表,以便我想避免重复的产品(按名称获取Distint产品)并获取与该产品相关的所有图像(例如,产品>名称 - test1有图像qwert1.jpg,qwert2.jpg, qwert2.jpg)
答案 0 :(得分:0)
+--------+----------------+------------+------------+-----------------------------+
|Segment_0| AcctName | Budget | CURRENT BUDGET EXPENSES OCT |
+--------+----------------+------------+------------+-----------------------------+
| 500101 | Salaries | 8898033 | 8898033 | |
| 500101 | Salaries | 5459062 | 5459062 | |
| 500101 | Salaries | 452569.6 | 452569.6 | |
| 600401 | Operating Cost | 4676556 | 4676556 | |
| 600401 | Operating Cost | 1242621.54 | 1242621.54 | |
| 600401 | Operating Cost | 882554.4 | 882554.4 | |
| 600401 | Operating Cost | 595670.4 | 595670.4 | |
+--------+----------------+------------+------------+-----------------------------+
请注意,这不是标准SQL,但大多数DBMS都提供此功能(尽管关键字可能略有不同)。
答案 1 :(得分:0)
简单连接应该做所有事情
select p.name as Name, i.message as IMG from Images
left join Product p
on i.biz_id=p.biz_id
group by p.name;
答案 2 :(得分:0)
将left join
与GROUP_CONCAT
或group by
select p.name name,GROUP_CONCAT(i.path) img
from Images i left join Product p
on i.biz_id=p.biz_id
group by i.product_id