0

user_idとseller_idが異なる2つのテーブルusersとsellersがあります。販売者とユーザーの名と姓の検索クエリを比較して、結果を取得したいと考えています。2 つのテーブルには外部キーが関連付けられておらず、sellers テーブルには販売者の名前のみが表示されています。姓も名もありません。

SELECT *
FROM users
WHERE first_name LIKE "%'.$search_string.'%"
OR last_name LIKE "%'.$search_string.'%"

それはユーザーテーブルで機能します..それをセラーテーブルと結合する方法は?

users テーブルから、user_id、first_name、last_name を取得したいと思います。Sellers テーブルから、seller_id、seller_name を取得したいと思います。

4

1 に答える 1

0

ユーザーと販売者を関連付けるために、トランザクション ID などの結合可能なフィールドがあるかどうかについて言及していないため、何を達成しようとしているのかよくわかりません。

件名が検索文字列に一致するユーザー行またはセラー行のみを検索する場合は、

SELECT 'users' as origin, CONCATENATE('first_name',' ','last_name') as name
FROM users
WHERE (first_name like '%".$search_string."%' OR  last_name like '%".$search_string."%')

UNION

SELECT 'sellers' as origin, seller_name as name
FROM sellers
WHERE ( seller_name like '%".$search_string."%')

「origin」列を削除すると、UNION ステートメントは結果セットに対して暗黙の DISTINCT を実行することに注意してください。複製結果を表示する必要がある場合は、UNION ALL を使用する必要があります。

于 2013-11-03T20:21:44.260 に答える