我需要连接来自2个不同表的数据,这些表也来自不同的数据库。我需要在1表中加入它们。
以下是插图:
TABLE1
----------
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
----------
我想使用左连接结合where子句但我不知道实现这个的正确方法。我玩了代码但是错误;
$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'");
答案 0 :(得分:1)
执行LEFT JOIN
时,您需要使用ON
语法来定义2个表之间的链接。此外,您的查询中不能包含2 WHERE
个。见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注入。