我正在使用PHP和MySQL创建XML Feed,它已取得了巨大的成功,但我面临的一个真正问题是,我传入Feed的项目有一个唯一的ID,它与另一个中的某些图像有关表。
XML节点由查询和循环生成。问题是我每次循环时,如果有多张图片,查询中的所有信息都会再次输出,但是会输出第二张图片。
所以我得到......
<ID>1</ID>
<URL>URL1</URL>
<ID>1</ID>
<URL>URL2</URL>
正如你可以说的那样,只要有多个图像URL,任何其他包含的字段也是重复的,因为在我的数据库中它看起来像这样。
ID URL
1 1
1 2
1 3
基本上,URL通过ID链接。
所以,如果我有像
这样的查询SELECT * FROM TABLE1
JOIN TABLE2.parent_id = TABLE1.id
只要有多个图片网址,我就会从表1中获取所有内容。
有没有办法从第一张表中获取所有内容,然后从第二张表中获取imgurl并将其列在ID下
喜欢这个。
ID (other fields too)
img
img
img
而不是
ID image (other fields)
ID image (other fields duplicated due to send url)
总而言之,如果我要做SELECT *我会说出姓名,姓氏,DOB但是如果我然后加入imgurl part id get ...
name
surname
DOB
URL 1
name
surname
DOB
URL 2
有解决方法吗?
答案 0 :(得分:0)
你需要决定你想要什么。但典型的解决方案是使用聚合和group_concat()
:
SELECT TABLE1.*, GROUP_CONCAT(TABLE2.URL)
FROM TABLE1 JOIN
TABLE2.parent_id = TABLE1.id
GROUP BY TABLE1.id;
为url
中的每条记录创建一个逗号分隔的table2
table1
列表。