[mysql]使用左联接搜索结合 WHERE 子句

标签: MySQL PHP
发布时间: 2015/6/11 20:36:05
注意事项: 本文中文内容可能为机器翻译,如要查看英文原文请点击上面连接.

我必须先加入 2 不同表,这个表也都来自不同的数据库中的数据。我需要 1 表中加入他们的行列。

以下是示例:

表 1

----------
dr_no    prd_sys_code   ship_code

123         ABC1               01

321         ABC2               02

----------

表 2

----------
prd_sys_code  ship_code   serialno

ABC1             01         A

ABC1             01         B

ABC1             01         C

ABC1             01         D

ABC1             01         E

ABC1             01         f
----------

表 3

----------
dr_no      CSerialNo  status

123            A       P

123            B       P

123            C       P

----------

输出

----------
serialno  status

  A         P

  B         P

  C         P

  D

  E

  f

----------

使用左的联接的 Im 思维结合在哪儿子句,但不是知道正确的方式来实现这一目标.,我玩了的代码,但其错误;

$fetch = mysql_query("SELECT DB1.TABLE2.serialno, DB2.TABLE3.status FROM DB1.TABLE2 LEFT JOIN DB2.TABLE3 WHERE DB1.TABLE2.prd_sys_code='ABC1' AND DB1.TABLE2.client_code='01', WHERE DB2.TABLE3.dr_no = '123'");

解决方法 1:

当做 LEFT JOIN 您需要使用 ON 语法来定义 2 的表之间的链接。此外,你不能有 2 WHERE s 你的查询中请参阅http://dev.mysql.com/doc/refman/5.0/en/join.html
试试这样-

SELECT 
   inventory.prodserial.serialno, service2.installation2.status
FROM 
   inventory.prodserial
LEFT JOIN 
   service2.installation2
ON
   inventory.prodserial.serialno = service2.installation2.CSerialNo
WHERE 
   inventory.prodserial.prd_sys_code='$prd_sys_code' 
AND 
   inventory.prodserial.ship_code='$ship_to'
AND 
   service2.installation2.dr_no = '$dr_no'

请注意我不得不改变这两个在你列名称你 WHERE / AND 子句来匹配您已发布的表中的列名称。此外,还要确保你正在逃避你的数据以防止 SQL 注入。

官方微信
官方QQ群
31647020