mysql - mysql中不同表的值之间存在差异

标签 mysql distinct

我在 mysql 中有两个表,其中包含有关用户的详细信息,例如电子邮件、名字和姓氏。

我想出了一种方法来欢迎登录的用户,但问题是两个表中的某些值相似,这会导致重复, 我想知道如何区分不同表中的值。

我试过这段代码,但没有用:

$query=  "SELECT * FROM Table1 WHERE email = '".$_SESSION['Email']."' NOT IN (SELECT email = '".$_SESSION['Email']."' FROM Table2)";  

最佳答案

您的查询是:

SELECT *
FROM Table1
WHERE email = '".$_SESSION['Email']."' NOT IN (SELECT email = '".$_SESSION['Email']."' FROM Table2)

表达式 email = '".$_SESSION['Email']."' 是一个 bool 表达式——本质上是 01

SELECT *
FROM Table1
WHERE email = '".$_SESSION['Email']."' and
      email NOT IN (SELECT email from Table2 where email = '".$_SESSION['Email']."')

因为比较是相同的,所以更有效地写成:

SELECT *
FROM Table1
WHERE email = '".$_SESSION['Email']."' and
      not exists (SELECT email from Table2 where email = '".$_SESSION['Email']."')

在两个表中对 email 进行索引将提高性能。

关于mysql - mysql中不同表的值之间存在差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17799709/

相关文章:

mysql - 用 HAVING 查询,你能解释一下这个行为吗?

php - 仅以所需格式打印 session 数组中所需的数据和

mysql - 如何修复十六进制 UTF-8 字节字符(在 latin1_swedish_ci 表中)

php - 如何获得每篇文章的浏览量?

mysql - mariadb:选择具有复杂列的不同的

mysql - 在没有主键的情况下删除 MySQL 数据库中的重复条目

MySQL UNION 查询,不同的 ID

php - 尝试在页面和 fancybox 中显示相同的内容

mongodb - 如何计算 MongoDB 中的不同值?

Android/SQLite - 跨多列的不同计数