我想从两个不同的表中拉出彼此相邻的列。
我的php代码如下:
<table>
<tr>
<th>Date</th>
<th>Performance A </th>
<th>Performance B </th>
</tr>
$sql = "select date, Aperformance from table1 group by date";
$sql1 = "select date, Bperformance from table2 group by date";
$result = mssql_query($sql);
while ($column = mssql_fetch_array($result))
{
echo "<tr><td>".$column[0]."</td>";
echo "<td>".$column[1]."</td></tr>";
}
这会产生如下输出:
Date | Performance A | Performance B
01/05/12 | 40% |
02/05/12 | 30% |
03/05/12 | 25% |
现在我想从查询$ sql1中填满第三列。我不想要$ sql1的日期列,第二列Bperformance需要放在这里。我怎么能这样做?
答案 0 :(得分:1)
您可以简单地使用连接,如果在其中一个表中没有日期匹配,则使用完全外连接可以检索行
SELECT A.Date , A.APerformance AS [Performance A] , B.BPerformance AS [Performance B]
FROM (
SELECT Date
,APerformance
FROM Table1
GROUP BY Date
) A
FULL OUTER JOIN (
SELECT Date
,BPerformance
FROM Table2
GROUP BY Date
) B ON A.Date= B.Date
答案 1 :(得分:0)
假设两个查询都返回相同的行数,您可以执行以下操作:
$result1 = mssql_query($sql);
$result2 = mssql_query($sql2);
while($column1 = mssql_fetch_array($result1)) {
$column2 = mssql_fetch_array($result2);
echo "<tr><td>$column1[0]</td><td>$column2[0]</td></tr>";
}
如果查询返回不同大小的结果集,那么您将做一些额外的工作。