php - 选择两个表中的数据

标签 php mysql sql select

我有两个表:谁包含这些字段:


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% ' 是我的面板选项卡名称(A-Z 列表):

select * 
   from gmdc_employee
   where employee_name like '%$search%' 
     AND employee_name like '$listname%'

问题出在我的搜索按钮上。以前,我的搜索按钮只会搜索 employee_name(我上面的代码是我使用的有效代码)。但不幸的是,情况发生了变化 :( 有人问我除了搜索 employee_name(在 gmdc_employee 表中找到)之外,用户还可以搜索 employee_id(在 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'

最佳答案

应返回您在问题中提供的数据的查询是:

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"

关于php - 选择两个表中的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6209443/

相关文章:

mysql - 查找连接对 SQL 中的第二低值(使用排名)

sql - 如何包含在某一天没有任何意义的值 (APEX)

javascript - PHP 网站为桌面和移动浏览器返回不同的 SHA512 值

php - 无法实例化\Aws\Ec2\Ec2Client

php - Yii 2.0 : Sorting on column in a GridView

php - 如何将mysql改为mysqli?

javascript - 客户端和服务器端编程有什么区别?

MySQL 查询 - 出了什么问题?

python - 将参数传递给 cursor.execute() 时在 pyodbc 中出现 UnicodeDecodeError,但在将参数直接写入字符串时却不会

sql - 在 SQL 语句中构建动态 where 条件