选择表中的列与另一个表中的列不同的数据
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;
【讨论】:
以上是关于选择表中的列与另一个表中的列不同的数据的主要内容,如果未能解决你的问题,请参考以下文章