有两个表views和post
select * from post left join views on (post.id = views.viewsid)……
post中的字段id和views中的字段viewsid不同但相关联,viewsid的值是c-11-id(这里的id与前面的id相同)
假设c-11-固定不变。如何使"post.id=views.viewsid"成立。
本人菜鸟,查了一下午都没搞明白,至今仍在水深火热之中,请求高人、大侠、大神……解救!!!
select * from post left join views on (post.id = views.viewsid)……
post中的字段id和views中的字段viewsid不同但相关联,viewsid的值是c-11-id(这里的id与前面的id相同)
假设c-11-固定不变。如何使"post.id=views.viewsid"成立。
本人菜鸟,查了一下午都没搞明白,至今仍在水深火热之中,请求高人、大侠、大神……解救!!!
left join views on (post.id = convert(int,replace(views.viewsid,'c-11-','')))
left join views
on (c-11-post.id) = views.viewsid
--或
select * from post
left join views
on post.id = convert(int,replace(views.viewsid,'c-11-',''))
left join views
on 'c-11-'+convert(varchar(10,post.id) = views.viewsid
--或
select * from post
left join views
on post.id = convert(int,replace(views.viewsid,'c-11-',''))
left join views on (post.id =
convert(int,REVERSE(substring(REVERSE(@t),0, charindex('-',REVERSE(@t)))))
)
--上面的@t 是错的,我自己测试用的
select * from post
left join views on (post.id =
convert(int,REVERSE(substring(REVERSE(views.viewsid),0, charindex('-',REVERSE(views.viewsid)))))
)
select * from post
left join views
on post.id = reverse(substring(reverse(views.viewsid),1,charindex('-',reverse(views.viewsid))-1))
left join views on (post.id = substring_index(views.viewsid,'-',2))
试试这个,如果你的格式是这样的话,绝对没有问题。