'内联
txtsql="select * from 客房预定表 inner join 客房入住表 on 客房预定表.客人编号=客房入住表.客人编号"
'客房入住价格用price,客房预定价格用resv
price.text=resv.text

解决方案 »

  1.   

    二、join...ON...语句
        join...ON... 语句是SQL查询中用于连接多个表的语句,该语句的语法为:
        FROM table1 [inner|OUTER|LEFT|RIGHT] join table2 ON table1.field1 compopr table2.field2
        其中tabel1指定要查询的表,tabel2指定连接到tabel1的表,field1, field2指定连接字段名称,
    compopr指定关系比较符,它可以是大于、小于、等于、不等于等。
        范例三: 列出所有书籍以及它的作者
        在BIBLIO中,书籍的名称位于Titles表的Title字段中,而书籍的作者位于Authors表的Autoor字段中,而这两个表之间没
    有相关联的字段,我们这时需要联合数据库中的Title Author表,利用该表的Au_ID字段同Authors表中的Au_ID字段的关联以及
    ISBN字段同Titles表中的ISBN字段的关联,范例如下:
    Private Sub Form_Load()
        Dim rsTemp As Recordset
        Dim dbTemp As Database
        Dim astr As String
        
        Set dbTemp = DBEngine(0).OpenDatabase("e:\program files\microsoft visual studio\vb98\biblio.mdb", dbOpenSnapshot)
        astr = "SELECT Authors.Author, Titles.Title FROM " & _
        "([Title Author] inner join Titles ON [Title Author].ISBN = Titles.ISBN)" & _
        "inner join Authors ON [Title Author].Au_ID = Authors.Au_ID " & _
        "WHERE Titles.Title LIKE '*Beginner*'"    Set rsTemp = dbTemp.OpenRecordset(astr)
        If rsTemp.RecordCount > 0 Then
            rsTemp.MoveFirst
            Do Until rsTemp.EOF
                List1.AddItem rsTemp![Title] & "    " & rsTemp![Author]
                rsTemp.MoveNext
            Loop
        End If
    End Sub
        在上面的范例中,我们使用两个inner JION联合将Authors表中的Au_ID字段 和Titles表中的ISBN字段连接到Title Author
    表中,然后在Title Author表中查找Title字段中包含字符串“Beginner”的纪录并将Title字段和Author字段输出。
    ---------------------
    你的第一个贴子中写了。
      

  2.   

    使用 SQL-92 CROSS JOIN 语法
    此示例返回 authors 和 publishers 两个表的矢量积。所返回的列表包含 au_lname 行和所有 pub_name 行的所有可能的组合。USE pubs
    SELECT au_lname, pub_name 
    FROM authors CROSS JOIN publishers
    ORDER BY au_lname ASC, pub_name ASC
     使用 SQL-92 FULL OUTER JOIN 语法
    此示例返回 titles 表中的书籍标题及对应的出版商。还返回未出版列在 titles 表中的书籍的出版商,以及不是由 publishers 表中所列的出版商出版的所有书籍标题。USE pubs
    -- The OUTER keyword following the FULL keyword is optional.
    SELECT SUBSTRING(titles.title, 1, 10) AS Title, 
       publishers.pub_name AS Publisher
    FROM publishers FULL OUTER JOIN titles
       ON titles.pub_id = publishers.pub_id
    WHERE titles.pub_id IS NULL 
       OR publishers.pub_id IS NULL
    ORDER BY publishers.pub_name使用 SQL-92 LEFT OUTER JOIN 语法
    此示例在 au_id 上联接两个表,并保留左表中没有匹配项的行。authors 表与 titleauthor 表在各表的 au_id 列上相匹配。无论作品出版或未出版,所有作者均出现在结果集中。USE pubs
    -- The OUTER keyword following the LEFT keyword is optional.
    SELECT SUBSTRING(authors.au_lname, 1, 10) AS Last,
       authors.au_fname AS First, titleauthor.title_id
    FROM authors LEFT OUTER JOIN titleauthor
       ON authors.au_id = titleauthor.au_id
     使用 SQL-92 INNER JOIN 语法
    此示例返回所有出版商名称以及相应的所出版的书籍标题。USE pubs
    -- By default, SQL Server performs an INNER JOIN if only the JOIN 
    -- keyword is specified.
    SELECT SUBSTRING(titles.title, 1, 30) AS Title, publishers.pub_name
    FROM publishers INNER JOIN titles 
       ON titles.pub_id = publishers.pub_id
    ORDER BY publishers.pub_name
     使用 SQL-92 RIGHT OUTER JOIN 语法
    此示例在 pub_id 上联接两个表,并保留右表中没有匹配项的行。publishers 表与 titles 表在各表的 pub_id 上相匹配。无论是否已出版书籍,所有出版商均出现在结果集中。USE pubs
    SELECT SUBSTRING(titles.title, 1, 30) AS 'Title', publishers.pub_name
    FROM titles RIGHT OUTER JOIN publishers 
       ON titles.pub_id = publishers.pub_id
    ORDER BY publishers.pub_name