select a.CompanyDetails,a.Keyword,a.KeywordTitle,a.KeywordContent,a.AddTime,b.CompanyTitle,b.CompanyContent,b.CompanyName,b.www from((select Keyword.CompanyDetails,Keyword,KeywordTitle,KeywordContent,Keyword.AddTime from Keyword where Keyword.Keyword like '%眼镜%')a right join (select Companyxinxi.CompanyDetails,CompanyTitle,CompanyContent,CompanyName,Companyxinxi.www from Companyxinxi where CompanyTitle like '%眼镜%' or CompanyName like '%眼镜%')b on a.CompanyDetails=b.CompanyDetails)order by a.Addtime desc可以运行但是不正确 第一个查询语句不好使 数据里里面确实有数据 但是不显示出来    如果把right join改成left join的话第二个查询语句就不好使了!~ 应该怎么改? 谢谢大家了啊!~~ 谢谢大家了啊!~

解决方案 »

  1.   

    你应该把表结构写出来,大家得理解啊,你的sql语句实在太长了,呵呵:)
      

  2.   

    好长……
    用full join行不
      

  3.   


    select a.CompanyDetails,a.Keyword,a.KeywordTitle,a.KeywordContent,a.AddTime,b.CompanyTitle,b.CompanyContent,b.CompanyName,b.www
     from(
    (select Keyword.CompanyDetails,Keyword,KeywordTitle,KeywordContent,Keyword.AddTime from
     Keyword where Keyword.Keyword like '%眼镜%') a
     full join 
    (select Companyxinxi.CompanyDetails,CompanyTitle,CompanyContent,CompanyName,Companyxinxi.www from 
    Companyxinxi where CompanyTitle like '%眼镜%' or CompanyName like '%眼镜%') b 
    on a.CompanyDetails=b.CompanyDetails)
    order by a.Addtime desc
      

  4.   

    按照你的说明,可以运行但是不正确 第一个查询语句不好使 数据里里面确实有数据 但是不显示出来    如果把right join改成left join的话第二个查询语句就不好使了!~ 
    说明你的两个表的关联条件a.CompanyDetails = b.CompanyDetails没有对应项
      

  5.   

    根据你所描述的问题,你用RIGHT JOIN时,只显示了右表的数据,你用LEFT JOIN时,只显示了左表的数据,这就说明了问题出现在JOIN的字段上,也就是说JOIN的条件on a.CompanyDetails=b.CompanyDetails有问题,你根据此条件a表和b表根本JOIN不起来,a.CompanyDetails和b.CompanyDetails根本没有相等的.如果这两个字段是字符型的,你看着又一样,那么可以把JOIN条件改为 on ltrim(rtrim(a.CompanyDetails))=ltrim(rtrim(b.CompanyDetails))再试试.
      

  6.   

    select Keyword.CompanyDetails,Keyword,KeywordTitle,KeywordContent,Keyword.AddTime from
     Keyword where Keyword.Keyword like '%眼镜%'
    这个应该是.不应该是逗号吧!