我想从两个单独的数据库表中选择并检索结果,然后在一个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
函数。
答案 0 :(得分:0)
SELECT * FROM table3
JOIN table1 ON table3.column5=table1.column1 AND table3.column5='YES'
或者,将其更改为mysqli并使用http://docs.php.net/mysqli.multi-query
答案 1 :(得分:0)
如果两个表都具有相同的no,那么您可以在sql查询中使用 UNION
。属性 -
(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
查询中指定的第一个表格中应该有一个属性UNION
,即table3
。