【发布时间】:2015-04-19 15:55:29
【问题描述】:
我正在尝试合并 2 个没有重复行的表
表 1 - modx_site_content
|id|pagetitle|introtext|pub_date|
---------------------------------
|3635| name1 |texttextt|17.02.2015
|3636| name1 |texttextt|18.02.2015
表 2 - modx_site_tmplvar_contentvalues
|contentid|tmplvarid|value|
---------------------------
| 3635 | 1 |value1
| 3635 | 1 |value2
| 3636 | 1 |value3
我想尽一切办法
|id|title|introtext|publishdate|photo|
--------------------------------------
|3635|name1|texttextt|17.02.2015|value1, value2
|3636|name1|texttextt|18.02.2015|value3
但当前结果显示重复行 id 3535
|id|title|introtext|publishdate|photo|
--------------------------------------
|3635|name1|texttextt|17.02.2015|value1
|3635|name1|texttextt|17.02.2015|value2
|3636|name1|texttextt|18.02.2015|value3
我当前的sql请求是
SELECT
modx_site_content.id,
pagetitle as 'title',
introtext,
pub_date as 'publishdate',
modx_site_tmplvar_contentvalues.value as 'photo'
FROM `modx_site_content`,
`modx_site_tmplvar_contentvalues`
WHERE parent IN (1153,3271)
AND pub_date>0
AND `contentid`= modx_site_content.id
AND `tmplvarid` IN (10, 15, 19)
Order by `pub_date` DESC LIMIT 20
【问题讨论】:
-
您需要在您的
select上加上group by和group_concat(),并注意您所做的是糟糕的数据库实践。不要使您的设计非规范化。
标签: mysql sql join duplicates rows