Вот 3 MySQL формат таблицы:Как искать данные из внешней таблицы с помощью php и mysql?
project_status
psid p_id cdid sid short_list res_sent
1 3 112 24 0 0
2 3 113 25 0 1
3 4 114 22 0 1
4 4 115 23 1 0
5 5 116 26 0 0
contact_details:
cdid family_name given_name department title cid
112 xx xx xx xx 1
113 xx xx xx xx 2
114 xx xx xx xx 3
115 xx xx xx xx 4
116 xx xx xx xx 5
компании:
cid company_name
1 xx
2 xx
3 xx
4 xx
5 xx
Теперь мне нужно искать cdid
из project_status
таблицы на основе p_id
и sid
показать family_name, given_name, department, title
Так что я использую следующий запрос, и я получаю 3 результаты
SELECT
cd.family_name,
cd.given_name,
cd.department,
cd.title,
cd.cid,
ps.*, company.company_name
FROM
contact_details AS cd
LEFT JOIN project_status AS ps ON cd.cdid = ps.cdid
LEFT JOIN company ON company.cid = cd.cid
WHERE
1 = 1
AND ps.sid IN (25, 22)
AND ps.p_id = '3'
ORDER BY
company.company_name ASC
СЕЙЧАС раз хочу для поиска по последние данные с результатами (было 3 результатов) на основании фамилия, имя, отчество строка поиска
Для этого я использую следующий запрос:
SELECT
cd.family_name,
cd.given_name,
cd.department,
cd.title,
cd.cid,
ps.*, company.company_name
FROM
contact_details AS cd
LEFT JOIN project_status AS ps ON cd.cdid = ps.cdid
LEFT JOIN company ON company.cid = cd.cid
WHERE
1 = 1
AND ps.sid IN (25, 22)
AND company.company_name LIKE '%ab%'
OR cd.family_name LIKE '%ab%'
OR cd.given_name LIKE '%ab%'
AND ps.p_id = '3'
GROUP BY
cd.cdid
ORDER BY
company.company_name ASC
Теперь это не должно показать мне более, что 3 результат, потому что у меня есть 3 результат, показанный на моем первом запросе. НО, к сожалению, показывают мне более 3 результатов contact_details table
Почему 'WHERE 1 = 1 ', что делает, что добавить к партии – RiggsFolly
Оберните' OR' положения в '()' в противном случае они будут просто привести к путанице В настоящее время Тэй расширяют ваши критерии поиска за то, что вы думаете – RiggsFolly
@Avishek На самом деле не имеет значения – RiggsFolly