0

MYSQL(最終的にはPHP + MySQLの場合)でクエリを記述して、ある種の配列内の複数のテーブルをチェックできるようにすることはできますか?

たとえば、 client car rateの テーブル があるとします。各テーブルにはIDがあります。

クライアントには行があります...ID、名前、住所には行があります... ID、メーカー、モデル、年式、ナンバープレート番号には行があります... ID、1日、2日、3日

次のように動作しますか?:

SELECT name, make, model, license plate number, 1-day FROM client, car, rate WHERE make = ford

またはPHPで

$q = "SELECT name, make, model, license plate number, 1-day FROM client, car, rate WHERE make = ford";

これは正しい構文でしょうか?

4

2 に答える 2

1

いいえ、できません。ここでそれを提示する方法ではありません。テーブルが相互に関連している場合は、JOINSを実行できます。それ以外の場合は、一度に1つのテーブルから選択する必要があります。

PHPで反復ソリューションを実装して、複数のテーブルから返すか、ストアドプロシージャを使用してデータベース側で実行することを検討することもできます。

通常、リレーショナルデータベースを使用する場合、テーブル間に関係があり、テーブル自体で結合操作を実行できます(作業しているコンテキストについては何も知らないため、非常に緩い例です)。

SELECT c.name, c.make, c.model, c.licensePlateNumber FROM car AS c JOIN client AS cl ON c.ClientId = cl.ClientId JOIN rate AS r ON cl.RateId = r.RateId WHERE c.make = 'Ford';

関連:リンク

于 2012-10-15T13:54:26.547 に答える
1

はい、テーブル名を配列およびIDとしてクエリ関数に送信し、次に示すように実行できます。

function multiple_table_query($tbl_ary,$id)
{
      foreach($tbl_ary as $tbl)
{
    $sql="SELECT * FROM $tbl where id=$id"
    $result[]=mysql_fetch_array($sql)
}
}
 return $result;

ただし、これは、正確で見栄えの良い結果を得るためにSQL結合を使用するのに適した方法ではありません。

于 2012-10-15T14:46:19.533 に答える