选择表中的列与另一个表中的列不同的数据

Posted

技术标签:

【中文标题】选择表中的列与另一个表中的列不同的数据【英文标题】:Select data where column from table is different from column from another table 【发布时间】:2014-04-05 09:29:37 【问题描述】:

我需要从表(table1)中选择数据,其中特定列与另一个表(table2)中的另一列不同

类似的东西:

SELECT * FROM table1 WHERE table1.column1 != table2.column2

我是这样改变的:

SELECT * FROM table1
inner join table2 on table1.id = table2.id
WHERE table1.column1 != table2.column2

我有一个存储一些人的表(table1)。我需要一个一个随机选择并添加到另一个表(table2)。如果添加了一个人,则可以再选择一次,直到全部人被选中。这是我的查询:

SELECT * FROM people inner join people_generated on people.id = people_generated.id WHERE people.id != people_generated.id_people ORDER BY RAND() LIMIT 1 

这返回一个空结果:“mysql 返回了一个空结果集”

第二个表“people_genrated”是空的,所以剩下的人来生成。为什么结果是空的?

【问题讨论】:

【参考方案1】:

试试这样的,

SELECT t1.name FROM table1 t1
LEFT JOIN table2 t2 ON t2.name = t1.name
WHERE t2.name IS NULL

【讨论】:

【参考方案2】:

试试这个,

SELECT * FROM table1
inner join table2 on table1.id = table2.id
WHERE table1.column1 != table2.column2

【讨论】:

你能解释一下你为什么使用LEFT JOIN吗? @HamletHakobyan,加入更改为内部,谢谢!【参考方案3】:

试试这个。

 Select rooms.single from rooms where rooms.single<>checkin.room_no;

【讨论】:

以上是关于选择表中的列与另一个表中的列不同的数据的主要内容,如果未能解决你的问题,请参考以下文章

将表中的列与 hive 中另一个表的列进行比较

允许一列与另一个表中的多行相关[重复]

将表中的一列替换为不同表中的列并选择 *

将一个表的列中的数据与另一个表中的同一列进行比较

如何将基表中的列与基于用户注册创建的用户表结合起来

如果任何列与另一个表中的匹配行不同,如何插入行