SQL查询2个字段相同,一个字段不同
时间: 2024-05-03 08:19:18 浏览: 13
假设有一个表格名为`mytable`,包含字段`field1`、`field2`、`field3`,需要查询`field1`和`field2`相同,但`field3`不同的记录,可以使用以下SQL语句:
```
SELECT *
FROM mytable t1, mytable t2
WHERE t1.field1 = t2.field1
AND t1.field2 = t2.field2
AND t1.field3 <> t2.field3;
```
这个查询语句使用了自连接(self-join)来将同一张表格视为两个不同的表,使用`WHERE`子句来限制相同的`field1`和`field2`,并且限制不同的`field3`。
相关问题
查询一个字段相同另一个字段不同的sql语句
可以使用以下 SQL 语句查询一个字段相同另一个字段不同的记录:
```
SELECT *
FROM table_name
WHERE column1 = column2 AND column1 <> column3;
```
其中,`table_name` 是要查询的表名,`column1` 是要比较的字段,`column2` 是与 `column1` 相同的字段,`column3` 是与 `column1` 不同的字段。`<>` 表示不等于的运算符。
sql查询某2个字段相同的所有值
要查询某两个字段相同的所有值,可以使用SQL中的自连接和条件语句来实现。
首先,假设有一张名为"表名"的表,其中包含两个字段"字段1"和"字段2"。要查询这两个字段相同的所有值,可以使用以下SQL语句:
```
SELECT t1.字段1, t1.字段2
FROM 表名 t1, 表名 t2
WHERE t1.字段1 = t2.字段1
AND t1.字段2 = t2.字段2
AND t1.字段1 <> '' -- 可选条件,如果只想查找非空的相同值
```
以上的查询语句中,通过表的自连接,将同一张表拆分成两个别名为t1和t2的表。然后通过比较t1和t2的字段1和字段2的值,筛选出相同的记录。如果想要查询非空的相同值,可以添加额外的条件"`t1.字段1 <> ''`"。
执行以上SQL查询语句后,将会返回所有字段1和字段2相同的记录。