从一个表中进行SQL查询,并使用第一个查询表的结果查询另一个表

时间:2018-03-20 20:55:15

标签: sql vbscript

不确定标题是否对我想要达到的目标有意义。

我有两个表名为customer_details,另一个名为repair_details。我正在查询数据库以使用do到rs.EOF加载一些来自repair_details的信息,并在其中我想使用其中一个字段查询另一个表来报告用户是否已付款:

我的代码是这样的(在vbscript中)

len(tfidf_vectorizer.vocabulary_)
1371569

现在在customer_details内部,我有一个名为cust_id的列,另一个名为pay_needed的列。

我想运行第一个查询(repair_details)并在运行时查看customer_details,如果在pay_needed下,则报告是,然后将其存储为payment_needed。在我的编码中降低了我写这篇文章以突出显示谁需要付费:

<%
strSQL = "SELECT * FROM repair_details WHERE repair_progress = 0 ORDER BY id asc"               
Set rs = conn.Execute(strSQL)

   If rs.EOF Then
     booking_code ="None"
     serial = "None"
     fault = "None"
     status = "None"
   Else
   do until rs.EOF
     ID = rs("cust_id")
     booking_code = rs("booking_code")
     serial = rs("serial")
     fault = rs("fault")
     status = rs("status")
 %>             
<tbody>
 ..... rest of my page

这是我写的,当然它不起作用,我知道有一种更简单的方法,但它超越了知识。

If payment_needed = "Yes" Then%>
  <td nowrap><font color=#FF0000><%=booking_code%></font></td>                              
<%Else%>        
  <td nowrap><%=booking_code%></td> 
<%End If%>

提前致谢

1 个答案:

答案 0 :(得分:2)

尝试此查询:

SELECT RD.cust_id, RD.booking_code, RD.serial, RD.fault, RD.[status], CD.payment_needed
FROM repair_details RD
INNER JOIN customer_details CD ON CD.cust_id = RD.cust_id

它将在循环中执行所有repair_details&#39;领域。 您将不再需要第二个查询(strSQL1)。

然后你只需要阅读那里的所有内容:

ID = rs("cust_id")
booking_code = rs("booking_code")
serial = rs("serial")
fault = rs("fault")
status = rs("status")
payment_needed = rs("payment_needed")

如果要显示repair_details中的所有行,无论是否有有效的cust_id:

SELECT RD.cust_id, RD.booking_code, RD.serial, RD.fault, RD.[status], COALESCE(CD.payment_needed,'') AS payment_needed
FROM repair_details RD
LEFT OUTER JOIN customer_details CD ON CD.cust_id = RD.cust_id