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
我有两个表,我想要table1和table2中存在的所有macid和expiry日期。此外,我将所有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%'"
但显示结果为null。请帮忙解决。
我想要结果
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%'"
我无法检索没有%(百分比)的记录
答案 0 :(得分:2)
我认为这只是一个错字,而不是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
相同,那么使用等号(=)也可以。
答案 1 :(得分:1)
您必须分别制作两个JOIN
然后UINON
个结果。
SELECT macid, expiry_date
FROM table1 JOIN table2
ON table1.macid = table2.desktop
UNION
SELECT macid, expiry_date
FROM table1 JOIN table2
ON table1.macid = table2.server
答案 2 :(得分:0)
试试这个:
__declspec(selectany) const int X = 123;