我有2个表,每个表中的唯一ID在两个表中都是相同的。 我如何在php中一起加入两个表中的数据?
当我通常提取数据时,我这样做:
$get_board_array = mysql_query("SELECT * FROM posts WHERE user_id_to = '$id' ");
while($posts = mysql_fetch_array($get_board_array))
{
$post_id = $get_post['post_id'];
$html_output .= "<p>".$post_id."</p>";
}
至于从单独的表中提取数据而不是将它们全部搞砸了,我想做的是这样的事情:
$get_arrayA = mysql_query("SELECT * FROM tableA WHERE age = '36' ");
while($dataA = mysql_fetch_array($get_arrayA))
{
$dataA_id = $dataA['id'];
$dataA_firstName = $dataA['FirstName'];
foreach($dataA_id)
{
$get_arrayB = mysql_query("SELECT * FROM tableB where id='".$dataA_id."'");
while($dataB = mysql_fetch_array($get_arrayB))
{
$dataB_lastName = $dataB['LastName'];
$html_output .= "<p>".$dataA_firstName.$dataB_lastName"</p>";
echo $html_output;
}
}
}
或者这太奇怪了?
我知道如何使用内部联接在SQL中执行此操作但是如何在PHP中执行类似的操作并输出html?
答案 0 :(得分:1)
这(我只是猜测架构和您的需求)可以更好地查询您的情况:
SELECT a.id,a.FirstName,b.LastName
FROM tableA a
JOIN tableB b ON b.id = a.id
WHERE a.age = '36'
答案 1 :(得分:1)
这是因为你误导了使用通配符(*)字符。 停止!! 当傲慢的php开发人员想象他们不需要学习SQL时会发生这种情况。如果你需要什么,那就选择它。
SELECT
foo.foo_id,
foo.data as paramX ,
bar.type,
bar.something_else
FROM foo
INNER JOIN bar USING (foo_id)
WHERE
foo.state = 'open'
AND bar.type = 3