从mysql表中获取某些行与另一个表值进行比较

时间:2014-09-11 16:45:54

标签: mysql

我在mysql查询中需要一些帮助。

我有两张桌子,如下面的

表1

ID NAME    ADDRESS
1  test    testing address
2  test1    testing address 
3  test2    testing address 

表2

ID  user_id    date
1   2          123456789

我的查询是

SELECT * FROM table1,table2 on table1.ID = table2.user_id where table2.date != 123456789 

但它不起作用。

我需要来自table1的数据,没有ID 2,如下面的输出

ID name address
1  test1 testing address
3  test3 testing address

3 个答案:

答案 0 :(得分:1)

检查语法

 SELECT * FROM table1 t1 
 INNER JOIN table2 t2 on t1.ID = t2.user_id where t2.date != '123456789'

答案 1 :(得分:0)

使用left join仅获取第二个表中不存在的记录

SELECT tabl1.* 
FROM table1
left join table2 on table1.ID = table2.user_id 
where table2.user_id is null

请参阅this great explanation of joins

答案 2 :(得分:0)

试试这个: -

SELECT * FROM table1 t1 
inner join table2 t2 on t1.ID <> t2.user_id;

希望它会对你有所帮助。