Coldfusion 如何将用户输入与两个不同的表进行比较

Coldfusion 如何将用户输入与两个不同的表进行比较,coldfusion,Coldfusion,我有一个表单,它包含名字、姓氏和DOB的值。我有两张桌子:桌子A和桌子B。每个表可能包含在表单中输入的人名信息。在ColdFusion中,我想做的是编写一个查询,从中获取用户输入并比较哪个表包含信息。找到包含用户信息的表后,显示与该表相关的特定列 表格如下: <Form name="ERHospital" Method="Post" class="a"> <div align="center" style="margin-top:10pt; margin-bottom:1

我有一个表单,它包含名字、姓氏和DOB的值。我有两张桌子:桌子A和桌子B。每个表可能包含在表单中输入的人名信息。在ColdFusion中,我想做的是编写一个查询,从中获取用户输入并比较哪个表包含信息。找到包含用户信息的表后,显示与该表相关的特定列

表格如下:

<Form name="ERHospital" Method="Post" class="a">

  <div align="center" style="margin-top:10pt; margin-bottom:10pt">

    <table Border="0" width="100%" align="center" cellpadding=0 cellspacing=0 >
        <tr>
            <td class="m" id="fName">First Name&nbsp;</td>
            <td>
                <input class="a" id="FirstName" name="FirstName" value="<cfoutput></cfoutput>" size="15"> 
            </td>
            <td class="m" id="lName">Last Name&nbsp;</td>
            <td>
                <input class="a" id="LastName" name="LastName" value="<cfoutput></cfoutput>" size="15"> 
            </td>

            <td class="m" id="DOB">
                DOB<br />
                <font color="##CC0000" size="1" style="italic">(mm/dd/yyyy)</font>
            </td>
            <td>
                <input type="text" id="BirthDt" name ="BirthDt" id="BirthDt" maxlength="10" size="10">
            </td>
        </tr>
        <tr>
            <!---<td class="m" id="Hospital">Hospital</td>
            <td>
                <select name="hosp" id="hosp"></select>
            </td>--->
            <!---<td class="m" colspan="2"></td>
            <td class="m">
                <input type="button" value="Submit" onClick="SubmitMe(); checkFields();" name="SubmitEmpBtn" style="font-size:12px; font-family:Arial, Helvetica, sans-serif; font-weight:bold">
            </td>
            <td align="left">
                <input type="button" name="Clear"  value="Clear" onClick="ClearForm()" style="font-size:12px; font-family:Arial, Helvetica, sans-serif; font-weight:bold"> 
            </td>  
        </tr>--->
    </table>
    <div style="text-align:center; margin-top:15pt"><input type="button" value="Submit" onClick="SubmitMe(); checkFields();" name="SubmitEmpBtn" style="font-size:12px; font-family:Arial, Helvetica, sans-serif; font-weight:bold"> <input type="button" name="Clear"  value="Clear" onClick="ClearForm()" style="font-size:12px; font-family:Arial, Helvetica, sans-serif; font-weight:bold"> </div>
   <!---<table align="center">
                <TR>
                  <TD align="center"><input type="button" value=" Submit " onClick="SubmitMe()" name="SubmitEmpBtn" style="font-size:14px; font-family:Arial, Helvetica, sans-serif"> <input type="button" name="Clear"  value=" Clear " onClick="ClearForm()" style="font-size:14px; font-family:Arial, Helvetica, sans-serif"> </td>   
                </tr>
            </table>

  </table>--->

   </div>
</FORM>

如果保证用户只在一个表中,则可以使用UNION,如下所示:

<cfquery name="myquery" datasourse="#myDSN#">
    SELECT <userField1>, <userField2>
    FROM Table1
    WHERE 
        FirstName = <cfqueryparam value="#form.firstname#" cfsqltype="cf_sql_varchar">
        AND
        LastName = <cfqueryparam value="#form.lastname#" cfsqltype="cf_sql_varchar">

    UNION ALL

    SELECT <userField1>,<userField2>
    FROM Table2
    WHERE 
        FirstName = <cfqueryparam value="#form.firstname#" cfsqltype="cf_sql_varchar">
        AND
        LastName = <cfqueryparam value="#form.lastname#" cfsqltype="cf_sql_varchar">
</cfquery>
如果用户仅在一个表中,则您将只获得所请求用户的结果


编辑:我还想补充一点,我不太喜欢在sql查询中使用表单、url或任何其他外部变量,而不确保它们已被清除。但这是一种完全不同的讨论方式-

你在使用什么数据库?是否保证此人只在一张桌子上?如果不是,如果两者都在呢?@Shawn:Database:SQL是的,person保证只在一个表中。SQL是一种语言。您正在使用的数据库的名称是什么?类似于MS SQL、Oracle、PostgreSQL、MySQL、MariaDB……。@Shawn:我在使用MS SQL为什么用户在多个表中?只是想知道数据库的设计。。。此外,这主要是一种样式首选项,在代码块周围使用一组标记和多个变量比每次希望显示变量时使用单个标记更具可读性,即。。。有点新的DO查询,但如果我理解您提供的示例,它将检查第一个表,在本例中是表1。如果用户信息在其中,则显示该信息。否则,检查表2。它将同时检查两个表。但是因为只有一个有记录,这就是返回的。我要说的是,作为一名开发人员,我学到的最好的技能之一就是如何向我的数据库查询我想要的数据。数据库是用来处理数据的。它们不只是用来装东西的。有时候,在SQL中做一些事情要比把一堆数据带回代码中使用它简单得多,这是非常令人惊讶的。这是另一个放在工具箱里的工具。