PHP、MySQL : Select inside a while Loop?

标签 php mysql join

我请求您就以下问题提出建议:

我有两个表:

客户和订单。

我正在使用 while 循环打印表内的客户数据:

 $sql = "SELECT * FROM wccrm_customers where status = '1' order by date desc";
 $result = mysql_query($sql, $db);

 while ($daten = mysql_fetch_array($result)) { ?>
 echo $daten[id];
 echo $daten[name] . ' ' . $daten[vorname];
 echo $daten[email];
 echo $daten[telefon];

 } ?>

现在我尝试在此列表中添加一个新字段:购买是/否。由于我们的客户多于买家,我们希望显示是否有人购买:

这两个表之间的连接是两个表中的名字/姓氏!

因此,如果 customer.name =orders.name 并且 customer.firstname =orders.firstname 我想回显“YES”,如果不是则“NO”

我尝试使用 JOIN,但在这里我只得到两个表中的结果:

SELECT *
FROM wccrm_customers AS k
INNER JOIN wccrm_orders AS o
ON o.namee = k.name AND o.firstname = k.firstname

但我需要标记所有客户以及两个列表中的客户...

这可能吗?如果是:我怎样才能实现这一目标?

感谢您的建议!

亲切的问候,

斯特凡

最佳答案

这与 PHP 或 while 循环无关;你只需要正确地形成你的连接:

SELECT DISTINCT
   `k`.*,
   `o`.`namee` IS NOT NULL AS `Purchased`
FROM `wccrm_customers` AS `k`
LEFT JOIN `wccrm_orders` AS `o`
ON
    `o`.`namee` = `k`.`name`
AND `o`.`firstname` = `k`.`firstname`

Inner join venn diagram Left join venn diagram

了解有关不同连接类型的更多信息:http://www.sql-join.com/sql-join-types/

(图片由该网站提供,其中还包含几乎完全符合您想要做的事情的示例和讨论!)

<小时/>

顺便说一句,你一定错过了 massive red warning banner在有关使用已弃用(现已删除)mysql_* 函数的手册中。你应该停止这样做!使用MySQLiPDO相反。

关于PHP、MySQL : Select inside a while Loop?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48973093/

相关文章:

python - 为什么在 2012 年 python 中的 pandas 合并比 R 中的 data.table 合并更快?

php - 对 S3 图像文件的发布请求

php - PHP 5.* 中的方法拦截

mysql - SQL 查询优化 join union distinct

java - MySQL 结果字符串中的空格

python - 在 Pandas 中按范围加入/合并的最佳方式

php - MySQL 的 PDO 的 lastInsertId 竞争条件?

php - 如何在没有中间服务器端文件的情况下在 PHP 中创建和下载 zip 存档

mysql - SQL,如何使用GROUP BY删除重复数据

java - Sun 的 Thread.join 方法是否因为使用 Thread 对象同步而损坏?