繁体   English   中英

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

[英]Sql query from one table and to query another table with result from first query table

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

我有2个表,一个叫做customer_details,另一个是repair_details。 我正在查询数据库以使用do直到rs.EOF来从repair_details加载一些信息,在此内部,我想使用其中一个字段查询另一张表以报告用户是否已付款:

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

<%
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

现在,在customer_details内部,我有一列叫做cust_id,还有另外一列叫做pay_needed。

我想运行第一个查询(repair_details),并在运行它时,查看customer_details的内部,如果在pay_needed下报告为yes,则将其存储为payment_needed。 在我的代码我的下面,写这篇文章来强调谁需要付款:

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

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

<%
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>
 <tr>
 <%
   strSQL1 = "SELECT payment_needed FROM customer_details WHERE cust_id = '" & ID & "'"                 
   Set rs = conn.Execute(strSQL1)

    payment_needed = rs("payment_needed")

    If payment_needed = "Yes" Then%>
     <td nowrap<font color=#FF0000><%=booking_code%></font></td>        <%Else%>        
     <td nowrap><%=booking_code%></td>  
    <%End If%>  
   </tr>
   </tbody>
   <%   
    rs.MoveNext
    loop
   End if
   rs.Close
   %>

提前致谢

试试这个查询:

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字段执行循环中的操作。 您将不再需要第二个查询(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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM