テーブルユーザーには、id、name、fruit、veggies、meatというフィールドがあります。
テーブルFruitTypeには、id、type、healthy、userの各フィールドが含まれています。
のは、テーブルのユーザーは次のようになります推測してみましょう:MySQL - 1つのフィールドの値を使用して別のフィールドを名前で指定する
1、マーヴィン、アップル、キャロット、豚肉
2 Zorlax、ブルーベリー、レタス、ラム
を私が望む何を2
は、それらを結合、およびに応じて、特定のフィールドに、ユーザーの値を検索することができることです
1、果物、はい、1
2、野菜、はい、 "tからのVALUE ype "フィールドに入力します。例えば、私はこれを行うことができるようにしたいと思います:
SELECT User.'type' FROM User
LEFT JOIN FruitType ft ON (ft.user = User.id) etc.. conditions and so on...
は基本的に、私は「タイプ」の部分はFruitTypeテーブルに「タイプ」フィールドの値を取ることにしたいです。本質的に、フィールド変数のようなものです。
私は十分に明確であることを望みます。本物はもっと損傷するかもしれないが、ここでは、これはあまりにも混乱を招くと思われる場合には、私が今働いている本当の例です。この場合は
IF (trigger_by_date IS NOT NULL,
date_add(books.trigger_by_date, INTERVAL trigger_by_date_add DAY),
date_add(trigger_step_created_at, INTERVAL trigger_by_step_add DAY))
as deadline
を、trigger_by_dateは可変です。ヌルでない場合は、その値をフィールド識別子として使用します。
編集:明確さの便宜上
:ユーザーには、「種類」欄はありません。サンプルクエリの "type"は、FruitTypeテーブルのtypeの実際の値に置き換える必要があります。したがって、結果がFruitType.type = fruitという結果が得られた場合、SELECT User.fruitというクエリが必要になります。条件がFruitType.type = veggiesを指定した場合、SELECT User.veggiesへのクエリが必要です。今はっきりしていることを願っています。私は基本的に、FruitTypeの型に依存するように選択するフィールドを必要とします。
この問題を解決するために、データベース全体の再構築を終了しました。結局、はるかに簡単で約4000%速くなったことが判明しました。試してくれてありがとう。将来の読者が解決策を見つけた場合は、私に直接連絡することを躊躇しないでください。 – Swader