从不同的表中提取列并彼此相邻显示

时间:2013-01-15 16:50:03

标签: php sql-server

我想从两个不同的表中拉出彼此相邻的列。

我的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需要放在这里。我怎么能这样做?

2 个答案:

答案 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>";
}

如果查询返回不同大小的结果集,那么您将做一些额外的工作。