最近做了一个关联性的系统,有两个数据表一个叫aaa表一个叫bbb表,aaa表里面有5条数据
id    name    add      tel
1     ko      china    123456
2     kbc     china    13745122112
3     aa      usa      1234555
4     kdd     china    8956
5     eerr    usa      1230897bbb表有3条数据,aaa_id就是关联aaa表的id
id    aaa_id   shangpin
1     2        笔记本
2     1        台式电脑
3     2        鼠标请问我想在bbb表里搜索aaa表里的name(任意一个字母就可以搜索到)怎么搜索?
select * from bbb where name like '%k%'
这样可以搜索到关于aaa表里的关于name有一个k的名称吗??因为我想搜索某些客户买了什么东西!为什么我不直接在aaa_id填入name吗,因为客户的资料每个月都可能改变,可能他改变了手机号码,可能改了地址
或者有可能搜索地区 select * from bbb where add='china'

解决方案 »

  1.   

    这样可以搜索到关于aaa表里的关于name有一个k的名称吗??
    不能, 改成如下
    select bbb.*
    from aaa,bbb
    where aaa.id=bbb.aaa_id
    and aaa.name like '%k%'
      

  2.   

    或者有可能搜索地区 select * from bbb where add='china'
    select bbb.*
    from aaa,bbb
    where aaa.id=bbb.aaa_id
    and aaa.add='china';
      

  3.   

    用联合
    select b.* from bbb b left join aaa a on a.id = b.aaa_id where a.add like '%k%' or a.name like '%china%'或则
    select * from bbb where aaa_id in (select id from aaa where add like '%k%' or name like '%china%')
    都可以的.
      

  4.   

    select b.* from bbb as b left join aaa as a on a.id = b.aaa_id where a.name like '%k%' or a.add like '%china%' 5楼是不是把楼主的要求弄反了?