我已经为客户建立了一个小目录网站。
对于这个问题,我们至少需要知道以下两个:
TABLE: places TABLE: tags
| pid | name | lat | lng | | tid | pid | value |
------------------------------- ---------------------
| 1 | Place 1 | x.xx | x.xx | | 0 | 2 | tag1
| 2 | Place 2 | x.xx | x.xx | + | 1 | 2 | tag2
| 3 | Place 3 | x.xx | x.xx | | 2 | 1 | tag1
...我想得到更多这样的东西
| pid | name | lat | lng | value |
--------------------------------------------
| 2 | Place 2 | x.xx | x.xx | tag1, tag2 | <3
| 1 | Place 1 | x.xx | x.xx | tag1 |
...而不是这样的(多数民众赞成)
| pid | name | lat | lng | value |
--------------------------------------------
| 2 | Place 2 | x.xx | x.xx | tag1 |
| 2 | Place 2 | x.xx | x.xx | tag2 |
| 1 | Place 1 | x.xx | x.xx | tag1 |
是否可以将像上面这样的不同标签与纯SQL合并?
最佳答案
加入表后,您只需要GROUP_CONCAT
。
select p.pid,p.name,p.lat,p.long,group_concat(t.value) as value
from places p
join tags t on p.pid=t.pid
group by p.pid,p.name,p.lat,p.long
关于mysql - 如何从SQL中的表联接中删除重复项,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/42238445/