我有两个表:谁包含这些字段:
gmdc_employee
file_id company_id employee_id employee_name file_description file_date file_name folder_access upload_date confirmation
1 20111253 20080407 Mariel file1 2000-01-01 agent_masterlist.xls documents/20111253/ 2011-05-16 Pending
2 20112301 20864125 Keisha file2 2000-02-01 auto_lapsed.xls documents/20112301/ 2011-05-16 Pending
11 20111253 65513215 Rovy file15 2008-01-01 attendancesheet.xls documents/20111253/ 2011-06-01 Pending
gmdc_user
company_id company_name employee_id employee_name username password_clear password_hash login_number last_login
25014462 NCST 20132248 Danica ncst ncst c7b080d11d6766a27c02591f74b2ea4d 3 2011-05-23 11:25:03
20112301 EAC 20113318 Emilio eac each 933dd8674c563081260867dfa95b5e74 4 2011-05-23 11:52:58
20111253 DLSU 20080040 John dlsu dasma 3c26c824914144d0addf0ceb850ed78a 15 2011-06-01 10:45:32
这是我第一次需要在gmdc_employee表中获取项目时使用的查询:'%$ search%'是我的搜索按钮名称和'$ listname% '是我的面板标签(AZ列表)的名称:
select *
from gmdc_employee
where employee_name like '%$search%'
AND employee_name like '$listname%'
问题出在我的搜索按钮上。以前,我的搜索按钮只会搜索employee_name(我上面的代码是我使用的代码)。但不幸的是条件发生了变化:(我被问到除了搜索 employee_name (在gmdc_employee表中找到)之外,用户还可以搜索 employee_id < / em> (可在gmdc_employee中找到)和 company_name (可在gmdc_user中找到),但我不知道该怎么做:(我还没有从学校那里学到关于两个表的加入,虽然我学会了一种方法来做到这一点并尝试过。不幸的是它产生了错误的结果。那么我可以给出一个例子吗?
如果用户搜索公司名称 DLSU ,输出应如下所示:
employee_id employee_name title file_date status confirmation
20080407 Mariel file1 2000-01-01 Pending delete //delete is a link
65513215 Rovy file15 2008-01-01 Pending delete
关于你看到的内容,它搜索并回复公司名称“DLSU”下的文件我希望有人可以在这里帮助我:(我已经尝试了一切,但没有任何方法按照它的方式工作。
这是我试图使用的产生错误输出的东西。 :(它回应了所有需要的数据,并且没有查看只有搜索到的company_name信息应输出的条件:
select
a.employee_id,
a.employee_name,
a.file_description,
a.file_date,
a.confirmation
from
gmdc_employee AS a
JOIN gmdc_user AS b
WHERE
a.employee_name like'%'
AND a.employee_id like '%'
AND b.company_name like 'DLSU'
答案 0 :(得分:0)
应该返回您在问题中提供的数据的查询是:
SELECT `e`.`employee_id` ,
`e`.`employee_name` ,
`e`.`title` ,
`e`.`file_date` ,
`e`.`status` ,
`e`.`confirmation` AS "status"
FROM `gmdc_employee` `e`
JOIN `gmdc_user` `u` ON ( `u`.`company_id` = `e`.`company_id` )
WHERE `u`.`company_name` LIKE "DLSU"
答案 1 :(得分:0)
我已经格式化了您的查询,看起来您非常接近......您刚刚没有加入的ON条件
select
a.employee_id,
a.employee_name,
a.file_description,
a.file_date,
a.confirmation
from
gmdc_employee AS a
JOIN gmdc_user AS b
on a.employee_id = b.employee_id
WHERE
( a.employee_name like'%$search%'
OR b.employee_name like '%$search%' )
AND b.company_name like 'DLSU'
我不确定这是否是由员工ID正确加入...您没有显示任何相同“员工”与“用户”的实例。如果没有“ON”条件,它基本上会创建一个笛卡尔连接(或者直接错误输出)...如果您正在寻找多个条件,您可能还需要逻辑OR ...例如在一个字段中找到的名称或者其他......如果在两者中找到,没问题......