MySQL合并来自相关表的数据并导出为.csv

时间:2012-06-20 23:43:22

标签: mysql csv

我不太了解MySQL,所以我需要一些帮助来完成这项任务..我希望可以提出来。

我有一个表,我需要导出,我使用以下代码:

SELECT *
FROM `members`
WHERE `active` =1
AND `level` = 'full'
LIMIT 0 , 30000

这很完美,并且提供了我需要的大部分内容,包括名为id的列中的用户ID,但我还需要为每个成员获取相关图像并将其添加到导出的.csv。

图像(文件名)存储在名为images的另一个表中,但这只包含galleryidfilenamedefaultimg(注意我只对其中的数据感兴趣defaultimg = 1

此处的问题是此表中没有对成员(id)的引用。

为此,我必须引用另一个名为imagelinks的表,其中包含2列:

1)idgalleryid表格中的images相关。

2)memberidid表中的用户ID members相关。

我所知道的设置灾难。

所以..我需要做的事情,并且不能为我的生活做出努力是导出.csv与来自members表的所有用户数据(如我上面的代码中所述)添加filename表中与引用用户相对应的images数据(defaultimg = 1)。

最后,我还需要在filename数据的前面添加一个网址。

例如:该表格有my-image.jpg,但在导出的.csv中我需要它http://www.domain.com/images/my-image.jpg

我正在尝试在PhpMyAdmin中完成所有这些。

非常感谢任何帮助。

由于

1 个答案:

答案 0 :(得分:1)

我的语法可能有点偏,但这应该很接近......

SELECT members。*,CONCAT('http://www.domain.com/images/',images.filename)AS文件名FROM成员INNER JOIN imagelinks ON members.id = imagelinks.memberid INNER JOIN图像ON图像。 galleryid = imagelinks.id WHERE members.active = 1 AND members.level ='full'AND images.defaultimg = 1