【问题标题】:mysql join 2 tables in same columnmysql在同一列中加入2个表
【发布时间】:2017-07-22 14:41:55
【问题描述】:

我创建了 PHP 网站,在一个数据库中有 2 个表,2 到用户类型首先是编辑用户 (c) 和普通用户 (b)

第一个表(irp_members)

用户名 - 电子邮件 - 电话 - 用户类型 - parea

第二张表(irp_mem_papers)

用户名 - 电子邮件 - 电话 - pcountry - fname - pauthor - parea

如果用户已登录并且他的类型是 editor (c) 我尝试执行 mysql join 然后创建 mysql join 从第二个表中获取任何记录 ( irp_mem_papers) 其中第一个表 (irp_members) 中的 parea 字段 与第二个表 (irp_mem_papers) 中的 parea 字段 相同

mysql代码是

SELECT irp_members.parea, irp_mem_papers.pauthor,irp_mem_papers.phone, irp_members.username
FROM irp_mem_papers 
WHERE irp_members.username = $_SESSION[username]
INNER JOIN irp_mem_papers 
ON irp_members.parea=irp_mem_papers.parea

我的意思是如果 irp_members.parea 和 irp_mem_papers.parea 中的字段值相等(例如,它们都需要是 biology强>

【问题讨论】:

  • 它不工作,知道吗?
  • 为什么需要两张表?使用一个并创建一个额外的列 is_editor 并设置为 true 或 false
  • 同意 Grasper。在两个表中复制数据不是一个好主意。或者您必须只有一个表,或者您需要在第一个表中有一个唯一的 ID,并将其用作第二个表中的链接。但是拥有用户名 - 电子邮件 - 电话并不是一个好主意。
  • 没错,但我需要这样,谢谢提示

标签: php mysql join


【解决方案1】:

我不确定查询的语义是否正确,但语法必须是这样的(WHERE 子句在 JOIN 和 ON 之后):

SELECT irp_members.parea, irp_mem_papers.pauthor,irp_mem_papers.phone, 
irp_members.username
FROM irp_members 
INNER JOIN irp_mem_papers 
ON irp_members.parea=irp_mem_papers.parea
WHERE irp_members.username = $_SESSION[username]

【讨论】:

  • 我的意思是如果 irp_members.parea 和 irp_mem_papers.parea 中的字段值相等(例如,它们都需要是 生物学
  • 刚刚注意到,你加入了一个表“irp_mem_papers”。你应该做的是加入“irp_members”和“irp_mem_papers”。我已经在我的回答中更新了一个查询,试试吧。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-05-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多