mysql - 从 mysql 表中检索所有未登录的用户(SQL 查询)

标签 mysql sql

下面列出了 2 个表:

+-------------+-----------+--------------+-------------------------------+
|                             v3_customer                                |
+-------------+-----------+--------------+-------------------------------+
| customer_id | firstname |   lastname   |             email             |
+-------------+-----------+--------------+-------------------------------+
|           1 | Piet      | Pizza        | piet.pizza@example.com        |
|           2 | Klaas     | Hein         | klaas.hein@example.com        |
|           3 | Henk      | Crowdcontrol | henk.crowdcontrol@example.com |
+-------------+-----------+--------------+-------------------------------+

+-------------+-------------+---------------+
|           v3_customer_activity            |
+-------------+-------------+---------------+
| activity_id | customer_id |      key      |
+-------------+-------------+---------------+
|           1 |           1 | login         |
|           2 |           1 | order_account |
|           3 |           2 | login         |
+-------------+-------------+---------------+

我想要的是选择所有尚未登录的客户(注意 v3_customer_activity 中的 login 键)。所以在这种情况下,这将是具有 customer_id: 3

的客户

我正在使用 mysql 数据库。

我试过使用以下查询:

SELECT DISTINCT v3_customer.customer_id, v3_customer.firstname, v3_customer.lastname, v3_customer.email FROM `v3_customer` JOIN v3_customer_activity ON v3_customer.customer_id = v3_customer_activity.customer_id WHERE v3_customer.customer_id != (SELECT v3_customer_activity.customer_id FROM v3_customer_activity)

希望它能在子查询中找到的行之间进行迭代。 这导致错误告诉我子查询可能不包含多行。

长话短说

我想要的是从 v3_customer 中检索未列在表 v3_customer_activity 中的每个客户

最佳答案

试试这个:

select v3_customer.* from v3_customer
left join v3_customer_activity on v3_customer.customer_id=v3_customer_activity.customer_id
where v3_customer_activity.customer_id is null;

v3_customer_activity左连接v3_customer表,过滤不匹配的记录。

关于mysql - 从 mysql 表中检索所有未登录的用户(SQL 查询),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33799361/

相关文章:

java - 将连续 (MySQL) 结果集复制到单个多维数组中

mysql - 我需要对 3 月份的访问次数求和,并且在另一列中包含 4 月份的访问次数,我该如何在一个查询中执行此操作?

sql - 指定默认的 Rails 数据库

mysql - 在特定的 mySQL 行中找到具有匹配值的列

php - 优化 mysql 设置/表以提高负载下的性能

mysql - Sql 使用比 from-in to-in 命令更小的命令

PHP 行为怪异,混淆了 HTML 标记

mysql - 用于在两个表中插入数据的存储过程

mysql - 提供带有选择查询的列表

php - iOS 到 PDO PHP 和 MySQL