mysql - SQL - 从两个表中识别匹配值/记录

标签 mysql sql

我有 2 个表:

  1. tbl当前
  2. tbl历史

在每个表中,我都有一个代表产品 ID 的 ID 字段

  1. tblCurrent - prodID
  2. tblHistory - histID

这些 ID(产品 ID)相同。

我正在尝试编写一个 SQL 语句来标识存在于 tblCurrent 但不存在于 tblHistory 中的 ID

...和另一个标识存在于两个表中的 ID 的语句

我试过:

SELECT Distinct prodID
 FROM tblCurrent
INTERSECT
SELECT histID
 FROM tblHistory

感谢任何帮助

最佳答案

对于 tblCurrent 而不是 tblHistory 中的 ID:

SELECT c.prodId FROM tblCurrent c
LEFT JOIN tblHistory h ON c.prodId = h.histId
WHERE c.prodId IS NULL

对于同时存在的 ID:

SELECT c.prodId FROM tblCurrent c
JOIN tblHistory h ON c.prodId = h.histId

请注意,如果它们确实是 ID(唯一的),那么您不需要 DISTINCT,因为它们不会有多个行。

关于mysql - SQL - 从两个表中识别匹配值/记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20147064/

相关文章:

mysql - 创建多对多关系的mysql View

mysql - 选择某些类型没有任何相关记录的记录

java - 从存储过程返回空值

php - 如何使用 mysql 数据库为我的 WordPress 网站创建访问控制

mysql - 检查数据库中两个表之间的数据差异

javascript - php while 但结果必须在 javascript 中显示

java - 列表中的 CSV 或 JSON 文件

mysql - 从文件加载数据到表

MySQL - 如何将列逆透视到行?

mysql - 如何选择所有结果中列值都相同的一组记录