连接MySQL上的3个表+;2.哪里有命令

连接MySQL上的3个表+;2.哪里有命令,mysql,join,Mysql,Join,抱歉,如果我的标题没有应有的技术性,只是MySQL的新内容 我有三张桌子 PC01_咨询 PC02_咨询_类型 PC12_状态_代码 我给每个表起了一个简短的名字,所以PC01\U咨询-PC01,PC02\U咨询类型-PC02,PC12\U状态代码-PC12 我加入了PC01+PC02,使用了每个表中类似的列,即PC01.PC02.CONS\u TYPE\u ID“和PC02.CONS\u TYPE\u ID”,其中PC02.CONS\u TYPE\u ID=1 这就是我使用的代码 sele

抱歉,如果我的标题没有应有的技术性,只是MySQL的新内容

我有三张桌子

  • PC01_咨询
  • PC02_咨询_类型
  • PC12_状态_代码
我给每个表起了一个简短的名字,所以PC01\U咨询-PC01,PC02\U咨询类型-PC02,PC12\U状态代码-PC12

我加入了
PC01+PC02
,使用了每个表中类似的列,即
PC01.PC02.CONS\u TYPE\u ID“
PC02.CONS\u TYPE\u ID”
,其中
PC02.CONS\u TYPE\u ID=1
这就是我使用的代码

select * from PC01_CONSULTATIONS PC01

join PC02_CONSULTATION_TYPES PC02

on PC01.pc02_cons_type_id = PC02.CONS_TYPE_ID

where PC02.cons_type_id = 1
  • 最初它工作得很好,但现在除了所有这些之外,我还需要加入第三个表
    “PC12\u STATUS\u CODES”
    。PC01和PC12之间的类似列是
    “PC01\u ONSULTATIONS.PC12\u STATUS\u code\u ID”+“PC12\u STATUS\u code.STATUS\u code\u ID”

  • 如果这是加入到我已经存在的代码中,我还需要添加另一个“where”命令。将PC12表连接到代码的原因是,我可以检索PC12.STATUS\u code\u ID=2的记录。所以在当前的“where PC02.cons_type_id=1”和“PC12.STATUS_CODE_id=2”上,我必须添加“对吗

  • 我编写的代码(显然不起作用)如下所示,关于如何正确创建此代码以及如何检索正确记录的任何提示都将不胜感激。多谢各位

     select * from PC01_CONSULTATIONS PC01
     join PC02_CONSULTATION_TYPES PC02 
     join PC12_STATUS_CODES PC12
     on PC01.PC02_CONS_TYPE_ID = PC02.CONS_TYPE_ID
     on PC01.PC12_STATUS_CODE_ID = PC12.STATUS_CODE_ID
     where PC02.CONS_TYPE_ID = 1 and PC12.STATUS_CODE_ID = 2
    
试试这个:

select * from PC01_CONSULTATIONS PC01    
    join PC02_CONSULTATION_TYPES PC02 on PC01.PC02_CONS_TYPE_ID = PC02.CONS_TYPE_ID
    join PC12_STATUS_CODES PC12 on PC01.PC12_STATUS_CODE_ID = PC12.STATUS_CODE_ID
    where PC02.CONS_TYPE_ID = 1 and PC12.STATUS_CODE_ID = 2

您正在将请求写入false:

这是正确的

select * from PC01_CONSULTATIONS PC01    
join PC02_CONSULTATION_TYPES PC02    
on PC01.PC02_CONS_TYPE_ID = PC02.CONS_TYPE_ID
join PC12_STATUS_CODES PC12    
on PC01.PC12_STATUS_CODE_ID = PC12.STATUS_CODE_ID    
where PC02.CONS_TYPE_ID = 1 and PC12.STATUS_CODE_ID = 2

谢谢你,伙计,是的,很管用!你能告诉我你很快做了什么吗?比如我做错了什么,你是怎么纠正的?我真的很感激!要在两个表之间执行
join(内部联接)
操作,需要传递应在其上执行
join
的列。在您的情况下,对于第一个
连接
,没有传递任何列。因此,它无法连接两个表中的列。你的逻辑是正确的,但陈述的立场是错误的。我明白了,是的,你这样做更有意义。谢谢你。你很高兴……:)你可以将答案标记为已接受,这样我就可以获得一些声誉……;)是的,谢谢你的回答,我知道我现在错在哪里了。