0

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

----------

左結合を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'");
4

1 に答える 1

1

実行するときは、構文を使用して 2 つのテーブル間のリンクを定義するLEFT JOIN必要があります。また、クエリにON2 を含めることはできません。http://dev.mysql.com/doc/refman/5.0/en/join.htmlWHEREを参照してください。 このようなことを試してください -

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 インジェクションを防ぐために、データをエスケープしていることを確認してください。

于 2013-07-27T03:49:29.687 に答える