0

基本的に、2つの異なるデータベースからの2つのSQLクエリがあり、それらが等しい場所を比較して、その値に関する他の情報を結合しようとしています。最初のクエリにはIDと製品名が含まれ、2番目のクエリには製品名とコンポーネントが含まれています。それで、私はそれらを製品名で結合してから、他の2ビットの情報をそれらと一緒に表示しようとしています。選択したデータベースが2番目のクエリで使用されています。私が何をすべきか考えていますか?これまでのところ、これは1つの結果しか示さないようです。

$catid = mysql_query("Select a.entry_id, b.cat_name from blog.exp_category_posts a inner join blog.exp_categories b on a.cat_id=b.cat_id where b.Group_ID = 3");

$results = mysql_query("Select a.name, c.product from wr_scientific a inner join wr_scientific_products b on a.id=b.scienc_id Join xcart_products c on b.prod_id=c.productid LIMIT 1000");

while($row1 = mysql_fetch_array($catid)){
$row2= explode("™", $row1['cat_name']);
$row3= explode("®", $row2[0]);

while($row = mysql_fetch_array($results)){
$rowpro = explode("™", $row['product']);
$rowprod = explode("®", $rowpro[0]);

if($rowprod[0] == $row3[0]){
echo $rowprod[0].$row['name'].$row1['entry_id'];
 }  
  }
 }

助けてくれてありがとう

4

1 に答える 1

1

2つのデータベースがMySQLの同じインスタンス(〜同じマシン)にある場合は、テーブル名の前にデータベース名を付けることで、たとえばdb2from(say)のテーブルを参照できます。db1

例えば:

USE db1 ;
SELECT
    db1.table_in_db1.id,  -- you can specify the database name here, but
    table_in_db2.id,      -- there is no ambiguity, the database name is optional
    field_in_table_in_db2 -- the same way the table name is optionnal when there is no ambiguity
FROM
    db1.table_in_db1      -- database name is optionnal here, current database is assumed
JOIN
    db2.table_in_db2
ON ...
于 2012-06-13T19:27:08.123 に答える