タイトルはかなりシンプルに聞こえます...主な問題は、どの方向にクエリを行い、どのように結果を出力するかです。複数の列でのMySQLの検索
ここで空の検索とスクリーンショットです:クライアントは常に(検索クエリに一致する)表示されている必要があり
。だからここにいくつかの例:のProject2ため
- 検索するのProject2で出力CLIENT2 CLIENT2ため
- 検索する必要があり、すべてのプロジェクトと出力CLIENT2クライアント3用
- 検索する出力クライアント3私が照会
プロジェクトを作成し、このようなクライアントに参加する:
SELECT *
FROM projects AS a
LEFT JOIN clients AS b ON a.client_id = b.id
WHERE a.name LIKE '%$searchString%' OR b.name LIKE '%$searchString%'
その後、私はクエリfまたは上記のクエリで取得されたこれらを除くクライアント。それは、私が知っている唯一の方法で、プロジェクトを持たないクライアントを得ることです。
クエリでこれらの結果を取得できる文がありますか?これは私にとってあまり優雅ではないようです。また、私はclient2 project1を検索する場合、システムが失敗します。
編集:これまでの回答に感謝します。私はmysqlでは不可能な完全な結合で多くを得ました。私は、質問のタイトルとタグでそれを変更しました...申し訳ありません。完全な結合については何も知らなかったし、mysqlでは可能ではないこともわかった。
を書くことができます。 –
または、左の結合にNULLプロジェクトが含まれるように、または同じ順序を維持して右の結合に切り替えるように、テーブルの順序を切り替えます。 –