php - mysql连接问题

标签 php mysql join

我有两个包含以下列的表:

表 1:

id, agent_name, ticket_id, category, date_logged

表 2:

id, agent_name, department, admin_status

我想要实现的是从表 1 中选择代理部门与表 2 相同的所有行。

我已经尝试了几种不同的连接语句,但要么是语法错误,要么就是不适用于此表设置。我是 MySQL 的初学者,根据我的阅读,JOIN 处于复杂的一端!

我考虑过的另一种选择是将“部门”列复制到表 1 中,但这需要在前端进行更多编码,我想看看不这样做是否可以达到预期的结果。

非常感谢任何帮助。

最佳答案

我不太明白你的问题... 只有 table2 有一个部门,它们唯一的共同点是 agent_name。

我确实怀疑您的真正意思是:您想要 Table1 中代理来自某个部门的所有行,这是您想要的吗?在那种情况下,应该这样做(虽然还没有测试过):

SELECT * FROM Table1 
      INNER JOIN Table2 
      ON Table1.agent_name = Table2.agent_name 
      WHERE Table2.department = 'somespecific value';

顺便说一句:(受别人所说的启发)agent_name 听起来像是一个字符串值,你真的应该考虑使用 table2 中的 id 作为 table1 中的键(我们称之为 agent_id 或许)将它们链接在一起。外键(表之间的链接)应该是一个真正的唯一标识。该部门可能也应该是一个 id 键。那么它将是:

SELECT * FROM Table1 
      INNER JOIN Table2 
      ON Table1.agent_id = Table2.id 
      WHERE Table2.department = 'somespecific value';

关于php - mysql连接问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/340217/

相关文章:

php - Mysql 查询依赖于另一个查询与连接

mysql - 如何使用开始日期和特定时间段查找每个用户的平均数

php - 我在 mysqli 中收到错误和警告

php - 使用 PHP :date() or MySQL:FROM_UNIXTIME()? 存储时间戳

php卡萨TException :TSocket: Could not connect on high traffic website

php - 在 PHP 中使用准备好的语句插入/显示多个带有外键的 MySQL 表

mysql 每日报价查询 : cope with missing id's

php - 在 phpmyadmin 中使用 json 数据填充 mysql 表

MySQL 查询 : Using UNION and getting row number as part of SELECT

php - 如何在 codeigniter 数据表查询中使用 CONCAT?