を条件に一致する行を除外:は、2つのテーブルを結合が、私は名前でユーザーを検索するだけのためにのために戻って結果を得ることができるようにしたい3番目のテーブルに
- 私は
- 者と友達だ人たち私の 'イベント'とはまだ整列していない
私は正常部分#1を行い、クエリを持っている:
SELECT u.id, first_name, last_name
FROM user u
JOIN friend f
ON (
(f.requester_id = u.id AND f.recipient_id = :my_user_id)
OR (f.recipient_id = u.id AND f.requester_id = :my_user_id)
AND confirmed = 1
)
AND (
(first_name LIKE :search_input OR last_name LIKE :search_input)
OR (CONCAT (first_name, ' ', last_name) LIKE :search_input)
)
AND NOT u.id = :my_user_id
ORDER BY last_name
LIMIT 5
は、部品#2を追加する方法を見つけ出すのに苦労。テーブルは次のようになります。
USER
id | first_name | last_name
-- | ---------- | ---------
0 | John | Doe
1 | Jane | Doe
2 | Bob | Smith
3 | Mike | Jones
FRIEND
id | requester_id | recipient_id | confirmed
-- | ------------ | ------------ | ---------
0 | 0 | 1 | 1
1 | 3 | 1 | 1
2 | 2 | 3 | 1
3 | 1 | 2 | 1
USER_EVENT
id | user_id | event_id
-- | ------- | --------
0 | 0 | 43
1 | 0 | 846
2 | 0 | 1058
3 | 1 | 846
4 | 1 | 912
5 | 2 | 537
6 | 3 | 846
サンプル・データをクエリが受け取ることがあります。
:search_input (e.g. '%bob%')
:my_user_id (e.g. 3)
:event_id (e.g. 846)
Sidenote: ''%bob% ''あなたはそれらの中かっこを使わないでください。 ''%bob% ''と読み替えるべきです。そうしないと、コードで解析エラーが発生します。 –
それを指摘してくれてありがとう。 –