我有两个包含以下列的表:
表 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/