SQL Query比较数据库表中的两列

时间:2016-12-17 03:00:54

标签: mysql

我正在尝试编写一个显示名称的视图,并在下面的customers表中为具有错误zipcode的客户编写wrong_zipcode,假设我们有另一个表调用具有正确zipcode的usstates。

我的代码看起来像这样: 创建视图测试作为选择名称,来自Customer c的zipcode,usstates u其中c.zipcode不在(从usstates中选择zipcode);

Customer table

usstates table

3 个答案:

答案 0 :(得分:0)

你怎么看?我们使用zipcode连接两个表,并消除状态不匹配的行。

CREATE VIEW customers_with_wrong_zipcode AS
  SELECT customers.customer_id, customers.zipcode AS wrong_zipcode, customers.state
  FROM customers
  INNER JOIN us_states ON us_states.zipcode = customers.zipcode
  WHERE us_states.state <> customers.state;

答案 1 :(得分:0)

您可以使用not exists

Select *
From customers c
Where not exists
(select 1 from usstates where zipcode = c.zipcode);

答案 2 :(得分:0)

如果我理解你的问题,你有两张桌子。一个有客户信息,一个有邮政编码,你想找到客户表中输入邮政编码的所有行都不在邮政编码表中?

在这种情况下,你可以使用这样的东西。

SELECT NAME, ZIPCODE from Customers where not exists (SELECT TOP 1 ZIPCODE from MyZipCodeTable where Customers.ZIPCODE = MyZipCodeTable.ZIPCODE)