2016-05-17 49 views
0

我有兩個表,可以說x和y。我使用兩個查詢通過一個查詢來獲取X表中的數據,併爲Y的用戶ID匹配一個表的id到另一個表的user_id以獲取mysql中的記錄

這裏獲取從Y工作臺匹配X的ID的所有行是我的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

你可以從INNER使用JOIN在這些情況下

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"); 

加入將結合這兩個表。

a and b是兩張表的別名。通過使用別名,我們可以指定 哪個字段從哪個表中選擇。

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,你會發現一個personaldetails線(personaldetails將被複制),

  • 我添加了一個ORDER BY條款給你看。

  • 你應該引用主鍵或索引列,或添加新的索引

相關問題