mysql - 如何从一个字段不同的两个表中选择行?

标签 mysql database

很抱歉这个入门级的数据库问题,但我真的很想学这个。

我有两个表 customer_change 和 customer_full,我想从 customer_full 中选择同一客户(相同的 customer_id)但具有不同的 customer_points 的行。

我写了以下查询:

SELECT * 
FROM customer_change a,customer_full b 
WHERE 
    a.ID = b.ID AND 
    a.CUSTOMER_POINTS != b.CUSTOMER_POINTS

现在可以了。但它会返回两个表中的行,我如何更改查询以仅返回第二个表中的行?

此外,返回的行可能包含具有相同 ID 的两行,我可以修改我的查询以仅包含具有此 ID 的第一行吗?

专家们可以提供一些帮助吗?谢谢!

最佳答案

SQL 不等运算符是 <> , 不是 != . (抱歉:我注意到至少在某些实现中支持 !=!正如对该问题的评论所指出的,这似乎是一个字符集问题。不过,我坚持我的其余答案。 :))

也就是说,我推荐 learning about JOIN syntax ,而不是使用 WHERE 条件连接表。前者适用于更具可读性的查询,并让您可以更好地控制表的连接方式。

例如,您上面的查询是:

SELECT * 
FROM customer_change a
JOIN customer_full b ON a.ID = b.ID AND a.CUSTOMER_POINTS <> b.CUSTOMER_POINTS

关于mysql - 如何从一个字段不同的两个表中选择行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6670321/

相关文章:

database - 从网站向用户发送短信 - 如何?

java - 无法通过 JWS 应用程序连接到 MySQL 数据库

MySQL 查询输出

mysql - 如何在 MySQL 中模拟 select 的默认记录

php - 用户数据库模式 - 是否过度规范化?

Android:释放数据库连接

php - 无法使用 PHP 在 MySQL 数据库中插入多个图像

php - 将 MySQL 表数据回显为 HTML

php - 从 MySQL 结果创建数组,并添加新项目

database - 如何在一个表中连接五个表?