ODBC连接数据库方式,用CRecordset类进行多表查询。例如:有两个表,表一和表二
表一:
     name     sex
     张三      男
      李四      男
     王五       女
      刘六      女
表二:
     name     major
      张三      硬件
      李四       软件
      王五      硬件
       刘六     软件
现在想查询性别为男且学习硬件的人员名字,如何操作。

解决方案 »

  1.   

    用左连接left outer join连接两个表
      

  2.   

    请再说的详细一点。left  outer  join怎么用。
      

  3.   

    类似于 select 表1.name from 表1 left outer join 表2 on 表1.name=表2.name where...
      

  4.   

    左联接或者用这个也可以:
    select name from table2 where major='硬件' and name in (select name from table1 where sex='男')
      

  5.   

    各位大哥,可能我前边说的不明白。我采用ODBC数据库连接方式,用MFC的CRecordSet类来编写程序。所以没有sql语句这些。要考虑的是CRecordSet类的函数和变量来实现。
      

  6.   

    这个……该怎么说呢
    没SQL语句你的表从哪来?
      

  7.   

    我怎么表达那?直接写一段吧。
    比如:表名table  字段 code  name  sex
    用sql语句写select * from table;这是用ADO方式吧。
    用ODBC方式的话如下:
       CRecordSet table;
         table.Open();
              m_edit1=table.code;
              m_edit2=table.name;
              m_edit3=table.sex;
         table.Close();
    这样,就是没有sql语句。而用CRecordSet类的函数和变量。象变量用m_strFilter、m_strSort等。函数有
    MoveNext()  MoveFirst()  MoveLast() IsEof()  IsBof()等等。
      

  8.   

    CRecordSet也要SQL语句的,否则结果从哪来呢
    Open()有个参数是传入SQL字符串的。
      

  9.   

    请到下载区下载“vc++ ODBC连接方式 数据库基本功能大全”。看看没有一语sql语句是如何得到结果的。
      

  10.   

    下载网址:http://download.csdn.net/source/810678
      

  11.   

    virtual BOOL Open( UINT nOpenType = AFX_DB_USE_DEFAULT_TYPE, LPCTSTR lpszSQL = NULL, DWORD dwOptions = none );该函数使用指定的SQL语句查询数据源中的记录并按指定的类型和选项建立记录集.参数nOpenType说明了记录集的类型,如表10.3所示,如果要求的类型驱动程序不支持,则函数将产生一个异常.参数lpszSQL是一个SQL的SELECT语句,或是一个表名.函数用lpszSQL来进行查询,如果该参数为NULL,则函数会调用GetDefaultSQL获取缺省的SQL语句.参数dwOptions可以是一些选项的组合,常用的选项在表10.4中列出.若创建成功则函数返回TRUE,若函数调用了CDatabase::Open且返回FALSE,则函数返回FALSE.
      

  12.   

    \
    还是没有明白我的意思,我不用sql语句,而用封装的函数,我要用sql语句就去用ADO方式了。你的意思难不成是说没有sql语句vc++就写不了数据库程序了??
      

  13.   

    楼主,你还是回去看看数据库基本原理再说吧。
    没有SQL语句,前端程序通过什么向后台数据库取数据??ODBC就不用SQL语句啦??
      

  14.   

    照这位大哥所说,我们还要MFC干什么,都得去写机器代码啊。011001000