我在MySQL中有两个表,一个商店都有一个主id键,但里面有不同的细节,例如:
table 1: | id | name | type |
table 2: | id | secondary id | more dateails |
我正在使用的简化代码:
$status = $mysqli->query("SELECT * FROM `table1`");
while($rows = $status->fetch_array(MYSQLI_BOTH))
{
$id = $rows['id'];
$conts_q = $mysqli->query("SELECT * FROM `table2` WHERE id='$id'");
$conts_numr = $conts_q->num_rows;
if($conts_numr==0)
{
//Display empty
}
else
{
while($row2 = $conts_q->fetch_array(MYSQLI_BOTH))
{
//Get details and display
}
}
}
如果第二个表没有内容,它会显示它很好,但如果确实如此,它会显示每个id的所有内容,而不仅仅是与它相关的内容,我似乎无法找到我做错了什么。如果我发布的代码不够,我会在这里发布完整的原始代码。
答案 0 :(得分:2)
正如评论中所述,获取此数据的最佳方法是使用JOIN
。
SELECT * FROM `table1` t1
INNER JOIN `table2` t2 ON t1.id = t2.id
您可能需要按摩返回的列,例如井。