很抱歉这个入门级的数据库问题,但我真的很想学这个。
我有两个表 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/