私は2つのテーブルを持っています、各テーブルの一意のIDは両方のテーブルで同じです。 phpで両方のテーブルのデータを結合するにはどうしたらいいですか?MySQLは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のように何かしますか?ワイルドカード(*)文字の使用をmisguideのため
SELECT a.id,a.FirstName,b.LastName
FROM tableA a
JOIN tableB b ON b.id = a.id
WHERE a.age = '36'
ネストされたクエリが不正です!代わりに[MySQL JOINs](http://mysqljoin.com/)を見てください。それについて考えてみましょう。外部クエリによって返されたすべての行に対してクエリを実行します。これは非常に遅いですが、 'JOIN'は1つのクエリだけです。 – Bojangles
あなたのステートメント: '$ dataA_id = $ dataA ['id'];'は配列を作成するのではなく、変数の値を更新するだけです – hjpotter92
SQLでそれを行う方法が分かっているなら、 "PHP "あなたは '*'を選択すべきではありません。また、ループ内でクエリを入れ子にしてはいけません。できるだけ多くのデータを前面に引き出します。 – MetalFrog