(1/1)1対多で結合する場合に、多が絞り込み条件となった場合のSQLについての質問です。カスタムテーブルを使ったSELECT文などで、このような絞り込み条件が必要になると思います。カスタムテーブルの具体例として、たとえばユーザーテーブルがあったとします。//ユーザーの登録日とりあえず、上記のようなデータをユーザーの基本データだとします。このユーザーテーブルから、たとえば名前を元に検索するのは単純です。このような感じでしょうか。'山田太郎'このテーブル構造を変更することなくカスタムデータを追加したい(しかも柔軟に)という要望を実現するために、ユーザーカスタムテーブルを作ったとします。//カスタムフィールドの値custom_name、custom_valueには、たとえばそれぞれ以下のような値が入るとします。JOINして値を取得する方法は判ります。※カスタムテーブルに値がない場合という状況は無視できる仕様です。会社住所が東京都で始まるユーザのみを抽出すると、以下のような感じでしょうか。JOINがどんどん増えていって、いかにも効率が悪いと思えてなりません。適当に書いてみるとして、以下のような感じでしょうか。'%○○%'もっと効率の良い書き方、一般的にはこういう場面ではこんな書き方をするなど、識者の方から教えを請いたくて質問しました。※ちなみにDBはMySQLですが、とくにMySQLに限らない方法で答えを頂ける方がありがたいです。(1/1)推測されている通り、当方希望としては前者の>(relational_id,custom_name)にユニークという条件でした。説明不足申し訳ありません。素晴らしいお答え、ありがとうございます。ここまでスッキリしたSQLに書き換えられるとは、想像を遥かに上回った答えでした。//custom_nameを連結した数の部分に思い至らなかったために、AND条件ではなくOR条件となってしまうので使えないと考えてしまってました。JOINで結合させる事も、EXISTSに書き換える事もできそうですね。※まあ、EXISTSが早いという伝説は過去の遺物のようですがうまく応用すれば、あいまい検索のようにcount一致数が近いほど(上記の例の場合にcount=2の場合)似ている検索結果として使えなくもないですね。SQLそのものもそうですが、そこに使われているテクニック、考え方が非常に参考になりました。ありがとうございました。21:07結果を報告するこのQ&Aにはまだコメントがありません。あなたの思ったこと、知っていることをここにコメントしてみましょう。MySQL下記のようなテーブルがあり、idの値を渡すと、下記のレコードを取得したいと思います。MySQLMySQLのMEMORYエンジンを使用したテーブルについて質問です。MySQLPHPとMySQLを利用して簡単なWEBアプリを作っています。************...TYPE=Inoodbが指定するとワーニングが出てしまいます。MySQLMYSQLで詰まっています、判りましたらご教授お願いします。MySQL初心者です。こんな単純なテーブルが出来ません。理由がわかりません、教えて下さい。出来上がり、後で見に来たたくさんの人の悩みの解決に役立てられています。