0

結合を使用して2つのmysqlテーブルからデータを選択しようとしていますが、profile_starter、profile_advanced、profile_premiumなどの類似した名前のいくつかのテーブルから選択したいと思います。私の質問は、他のテーブルから選択する必要がない方法です。より多くのテーブルに参加しますか?*試しましたが、機能しません:

    $inbox_sql = "
SELECT sender, recipient, time, message, viewed, name, avatar 
FROM messages 
LEFT JOIN profile_* ON profile_*.username = messages.sender
";

これに対する解決策があるかどうか教えていただけますか?ありがとうございました

4

1 に答える 1

0

これに対する答えは、できないということです。JOIN を使用する場合、テーブル名は完全に存在する必要があり、ワイルドカードは使用できません。

テーブルが同じ場合、各テーブルを別のクエリに結合するのではなく、サブクエリで UNION を調べてそれらのテーブルのダンプを作成するのはどうですか? - ビューも検討する価値があるかもしれませんが、これらの多くはパフォーマンスを向上させません。データとニーズで両方をテストする必要があります。

ここにはテーブルが 3 つしかないように思えます。この例を単純化すると、ワイルドカードを使用して INFORMATION_SCHEMA TABLES をクエリして、一致するすべてのテーブルを一覧表示し、この出力を使用して完全なテーブル名を使用してクエリを作成できます。

于 2013-03-19T08:58:31.417 に答える