0

我想从两个单独的数据库表中选择和检索结果,然后在一个 html 表中循环它们。我可以执行命令并分别命名,组合结果并循环遍历它们。有没有办法通过一个查询来做到这一点?

下面的示例不起作用,但这就是我想要实现的逻辑。

$SQL = "SELECT * FROM table3 WHERE column5 = 'YES'";
$Data = mysql_query($SQL);

$SQL = "SELECT * FROM table1 WHERE column1 = 'YES'";
$Data = mysql_query($SQL);

// loops through records displaying in table format
for($Loop = 0; $Loop < mysql_num_rows($Data); $Loop++)
{
     $Row = mysql_fetch_assoc($Data);
     $Ref = $Row["Ref"];
     // rest of fields
}

注意:我知道 mysql 已被弃用。当我重建站点时,我将转移到 pdo,但现在我需要使用一个mysql函数。

4

2 回答 2

0

如果两个表的编号相同,您可以UNION在 sql 查询中使用。属性——

(SELECT * FROM table3 WHERE column5 = 'YES')
UNION
(SELECT * FROM table1 WHERE column1 = 'YES')

所以使用下面的代码片段 -

$SQL = "(SELECT * FROM table3 WHERE column5 = 'YES') UNION (SELECT * FROM table1 WHERE column1 = 'YES')";
$Data = mysql_query($SQL);

// loops through records displaying in table format
for($Loop = 0; $Loop < mysql_num_rows($Data); $Loop++)
{
     $Row = mysql_fetch_assoc($Data);
     $Ref = $Row["Ref"];
     // rest of fields
}

Ref在这种情况下,查询中指定的第一个表中应该有一个属性,UNIONtable3此处。

于 2013-09-24T17:00:10.570 回答
0
SELECT * FROM table3 
JOIN table1 ON table3.column5=table1.column1 AND table3.column5='YES'

或者,将其更改为 mysqli 并使用http://docs.php.net/mysqli.multi-query

于 2013-09-24T15:16:54.713 回答