2016-05-17 3 views
0

私は2つのテーブルを持っています。私はここでYのユーザーIDmysqlのレコードをフェッチするために、別のテーブルのuser_idに1つのテーブルのIDを一致させてください。

でのxのIDと一致するyのテーブルから1つのクエリによってXテーブルデータを取得し、すべての行をフェッチするために2つのクエリを使用していますことは、私のMySQLが

「config.phpの」が含まれています。

$sql1= mysql_query("select FirstName,MiddleName,LastName,Gender,Location,Email,Mobile from personaldetails limit 1"); 

$sql2 = mysql_query("select BookTilte,BookGenre,BookWriter,BookDescription from bookdetails where personaldetails.Id = bookdetails.UserId ") 

それは間違っている場合も、いくつかの代替ソリューションを提案してください

答えて

0
あなたはこれらのケースでは、JOIN INNERから使用することができます

SELECT FirstName,MiddleName,LastName,Gender,Location,Email,Mobile,BookTilte,BookGenre,BookWriter,BookDescription FROM `personaldetails` as `PD` INNER JOIN `bookdetails` AS `BD` ON `PD`.`Id` = `BD`.`UserId` 

注:するmysql_queryは廃止され、あなたが使用する必要がありますmysqliの機能

+0

はい、それは一つの方法ですが、私は単にそれを表示できるように、異なるvarialbesまたは配列に両方のテーブルのデータを保存したいですAPIを使用することによって – Cooolranjan

0

以下のクエリで試してください

$sql1= mysql_query("select a.FirstName,a.MiddleName,a.LastName,a.Gender,a.Location,a.Email,a.Mobile,b.BookTilte,b.BookGenre,b.BookWriter,b.BookDescription from personaldetails as a join bookdetails as b on a.Id=b.UserId limit 1"); 

は、2つのテーブルを結合します。

およびbは、2つのテーブルのエイリアスです。エイリアスを使用すると、どのテーブルからどのフィールドを選択するかを と指定できます。

a.Id = b.UserIdは、それは間違っていないよ

+0

私はidを一致させることによって、異なる変数に両方のテーブルの行を格納することができる方法はありますか? – Cooolranjan

0

キー主キーと参照を指定するために、時々行うには正しいものになる可能性があります。

代替ソリューションは、それが最初の行のみを返しますよう、あなたはもう限界値を必要としない

$str = <<<MARKER 
SELECT FirstName,MiddleName,LastName,Gender,Location,Email,Mobile 
FROM personaldetails 
INNER JOIN bookdetails ON (personaldetails.Id = bookdetails.UserId) 
ORDER BY personaldetails.Id 
MARKER; 
$sql1= mysql_query($query); 

ノート、

  • である可能性があります。

  • は各bookdetailsについて、あなたは私はあなたを表示するORDER BY句を追加

  • personaldetailsライン(personaldetailsが複製されます)、見つけるでしょう。

  • あなたは主キー、またはインデックス付きの列を参照するか、新しいインデックス

    を追加する必要があります
関連する問題