![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?c9bd177)
ふたつのテーブルを参照してデータを抜き出す方法を教えてください。ふたつのテーブルの構造は同じではありません。MySQL 4.0.2x です。
テーブル
entry [ title | id | other ]
sofile [ fileinfo | other | url | other ]
テーブルentryからtitleおよびidフィールドのセットを全レコードからランダムに5個抽出し、
idと同じ数値をfileinfoフィールドに持つレコードのurlフィールドの値をテーブルsofileから抽出し、
titleとurlを出力、ということをさせたいです。
1個のテーブルからランダムに取り出すことはできたのですが、そのランダムの結果を受けて二つ目のテーブルからデータを取り出す方法がわかりません。ご教授いただければ幸いです。
PHPコード
$ck = "SELECT * FROM entry
WHERE status=2 ORDER by rand() LIMIT 5
$entry = mysql_query($ck);
while ($rows = mysql_fetch_array($entry))
{
echo "{$rows["title"]}\n";
echo "{$rows["id"]}\n";
}
No.1ベストアンサー
- 回答日時:
サブクエリーがつかえればベターですが、つかえなくても
テンポラリをつくればいけるでしょう。
$sql =<<<eof
CREATE TEMPORARY TABLE `temp`
SELECT *
FROM `entry`
WHERE status=2
ORDER by rand()
LIMIT 5
eof;
$res = mysql_query($sql);
$sql =<<<eof
SELECT `temp`.`title`,`sofile`.`url`
FROM `sofile`
INNER JOIN `temp` ON `temp`.`id`=`sofile`.`fileinfo`
eof;
$res = mysql_query($sql);
while ($rows = mysql_fetch_array($res))
{
echo "{$rows["title"]}\n";
echo "{$rows["id"]}\n";
}
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Access(アクセス) アクセスの更新クエリでカレントレコードのみ更新したい 1 2022/06/02 23:32
- MySQL 共通点はあります。何が違うのでしょうか? 1 2023/01/27 05:22
- その他(データベース) 更新クエリをリンクデータベーステーブルに実行し実行時エラー3362固有インデックスに重複する値が含ま 1 2022/09/21 11:44
- PHP クエリObjectをforeachで回す時に、次のレコードへ移動せずに次のレコードを取得したい 2 2022/07/28 15:29
- その他(データベース) IT用語について質問です。 以前ITパスポートの試験を受けた際にデータベースが何の集まりかについての 2 2022/12/10 12:29
- Oracle sqlで質問です。 aテーブルとbテーブルがあり、下記のsqlで取得したidとnameに一致しないレ 1 2022/04/20 20:34
- Oracle SQL update方法 2 2022/06/22 14:07
- MySQL php テーブルを作れない 2 2022/11/17 18:22
- PHP php テーブルが作成できない 1 2022/11/17 23:41
- PHP コメント機能に返信欄を矢印で追加したい 1 2022/05/09 21:17
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
複数テーブルのGROUP BY の使い...
-
メルペイとメルペイid決済の違...
-
1テーブル&複数レコードの更新...
-
エクセルの関数について教えて...
-
フィールド名を変数で指定するには
-
エクセルからOutlookメールを起...
-
VBでストアドプロシージャ一覧...
-
SQLite3でこんな便利なSQLはで...
-
エクセルで最後の文字だけ置き...
-
MySQLのストアドプロシージャ記...
-
insertを高速化させたい
-
バインド変数について
-
カラム情報取得方法
-
SQL Left Join で重複を排除す...
-
クエリ表示と、ADOで抽出したレ...
-
VMware Player でCD-ROMドライ...
-
Access:クエリーにて集計後に...
-
1、Rstudioで回帰直線を求める...
-
カーソル宣言をIFで分けられま...
-
フィルターかけた後、重複を除...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルで最後の文字だけ置き...
-
副問合せの書き方について
-
SQLサーバから、項目の属性(型...
-
SQL Left Join で重複を排除す...
-
select文のwhere句に配列を入れ...
-
VIEWの元のテーブルのindexって...
-
PL/SQLの変数について
-
マイクラPC版のコマンドで効率...
-
エクセルの関数について教えて...
-
SQLにて特定の文字を除いた検索...
-
sqlで、600行あるテーブルを100...
-
Access パラメータクエリをcsv...
-
Unionした最後にGROUP BYを追加...
-
inner joinをすると数がおかし...
-
複数テーブルのGROUP BY の使い...
-
ある条件の最大値+1を初番する...
-
MySQLのint型で001と表示する方...
-
クエリ表示と、ADOで抽出したレ...
-
[MySQL] UNIQUE制約の値を更新...
-
テーブル名を省略して「h.id」...
おすすめ情報