0

基本的には、作業中のプロジェクトを終了しようとしているだけで、このSQLステートメントに使用する正しい構文を見つけるのに少し問題があります。

基本的に私が持っているものは2つの異なるテーブルです:

Customer:
companyid
companyname
etc etc.

Machine:
machineid
model
serial
companyid

これは通常、companyidに参加するだけなので簡単ですが、今回は少し異なる方法でこれを行う必要があります。顧客IDを使用して検索する顧客のテーブルから特定のデータを返し、マシンIDを使用して検索するマシンのテーブルから特定のデータを返す必要があります。

私はかなり疲れているので、答えが私を真正面から見つめている場合はお詫びしますが、ここで私が取り組んでいたことをここに示します。

$customerquery = mysql_query("
            SELECT customer.companyid, customer.companyname, 
                   customer.companyaddress, customer.postcode, 
                   customer.telephone, customer.mobile, 
                   machine.machineid, machine.model, 
                   machine.serial 
            FROM customer, machine 
            WHERE customer.companyid=$customerid AND 
                  machine.machineid=$machineid
            ");

どんな助けでも大歓迎です、ありがとう!

4

1 に答える 1

1

テーブルを結合する場所の条件を逃しているため、現在のクエリはデカルト積を生成します。これは join ( SQL-89)の古い構文です。

SELECT customer.companyid, customer.companyname, 
       customer.companyaddress, customer.postcode, 
       customer.telephone, customer.mobile, 
       machine.machineid, machine.model, 
       machine.serial 
FROM   customer, machine 
WHERE  customer.companyid = $customerid AND 
       machine.machineid = $machineid AND
       customer.companyid = machine.companyid -- you missed this one producing
                                              -- cartesian product

join ( SQL-92)の新しい構文

SELECT customer.companyid, customer.companyname, 
       customer.companyaddress, customer.postcode, 
       customer.telephone, customer.mobile, 
       machine.machineid, machine.model, 
       machine.serial 
FROM   customer INNER JOIN machine 
          ON customer.companyid = machine.companyid 
WHERE  customer.companyid = $customerid AND 
       machine.machineid = $machineid
于 2012-08-28T02:09:08.540 に答える