1

我想从两个相邻的不同表中提取列。

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

4

2 回答 2

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
于 2013-01-15T17:03:05.383 回答
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>";
}

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

于 2013-01-15T17:01:19.233 回答