company_name | macid | expiry_date
---------------------------------------------
abc | 123456789012 | 2017-03-23
qwe | 987654321012 | 2018-05-24
asd | 456789123012 | 2019-07-07
abc | 789456123000 | 2017-03-23
abc | 445544444444 | 2018-03-03
abc | 555555555555 | 2017-03-25
company_name | desktop | server
abc 123456789012 555555555555
789456123000
我有两个以上的表,我想要在表1和表2中存在的所有macid和到期日期。另外,我还将所有macid存储为换行符,并将桌面macid和服务器macid存储在不同的列中。我的查询
"select a.macid,a.expity_date from table1 a,table2 b where a.macid like b.desktop or a.macid like %'b.server%'"
但显示结果为空。请帮忙解决。
我想要结果
macid | expiry_date
---------------------------------------------
123456789012 | 2017-03-23
789456123000 | 2017-03-23
555555555555 | 2017-03-25
对于table2如果我想搜索mac_id他们必须使用
"select * from table2 where desktop like '%123456789012%'"
没有%(百分比),我无法检索记录
最佳答案
我认为这只是一个错字,而不是expity_date
,在您的查询中是expiry_date
,请参见demo。
select a.macid, a.expiry_date
from table1 a, table2 b
where a.macid like b.desktop or a.macid like b.server
但是,最好使用
join
而不是逗号(,)进行连接:select a.macid, a.expiry_date
from table1 a
join table2 b
on a.macid like b.desktop or a.macid like b.server
还要在此处检查demo。
另一件事是,如果
desktop
和server
与macid
相同,则只需使用equal(=)也可以。