我在mysql数据库中有一个用户表,每个用户都有一个limit 1, 1
列和一个referral_code
列。
referral_code_used
包含可与他人共享的用户引荐代码。
referral_code
包含用户从其他用户收到的推荐代码,他们在注册时输入了这些代码。
示例:
referral_code_used
在上面的示例中,用户B使用了用户A user referral_code referral_code_used email
A TW89 email@email.com
---------------------------------------------------------------
B TW66 TW89 email2@email.com
。
现在,我需要做的是将此数据导出为CSV文件,CSV文件应如下所示(
)referral_code
就是这样。
到目前为止,我可以使用以下代码将整个mysql导出为CSV文件,但我无法弄清楚如何做我想做的事情,我不知道是否可能:
referrer referred
email@email.com email2@email.com
非常感谢任何帮助。
提前致谢。
修改
我试过这个,这将生成一个空的CSV文件:
<?php
header('Content-Type: text/csv; charset=utf-8');
header('Content-Disposition: attachment; filename=data.csv');
$output = fopen('php://output', 'w');
$rows = mysqli_query($db, 'SELECT * FROM `users`');
while ($row = mysqli_fetch_assoc($rows)) {
fputcsv($output, $row);
}
fclose($output);
mysqli_close($db_conx);
exit();
?>
我根本没有看到任何错误!
答案 0 :(得分:1)
这应该有效 - 您正在寻找的概念是将表内连接到自身,以便根据引用代码匹配不同的行:
select
A.email as 'referrer',
B.email as 'referred'
from
users A
inner join users B
on A.referral_code = B.referral_code_used
答案 1 :(得分:1)
这看起来像是必须在同一个表上进行连接的情况。我想象这样的事情:
Select u.email as referrer, ref.email as referred from users u
INNER JOIN users ref on u.referral_code=ref.referral_code_used