[英]How can I retrieve data from a table and using a foreign key retrieve data from another table?
[英]Retrieve data from table using data retrieved from another table
我需要從數據庫中的一個表中獲取ID,並將該ID用作“鍵”,以便從另一個表中獲取名稱。 例如
$result2 = mysql_query("SELECT * FROM XXX WHERE id=8 ")
or die(mysql_error());
while($row = mysql_fetch_array( $result2 )) {
echo $row['client_id'];
在這里,我從表1中獲得client_id。現在如何在其中實現該功能,以便它僅返回具有上述id的名稱和姓氏
$data = mysql_query("SELECT firstname, lastname FROM YYY WHERE ???? :S ")
or die(mysql_error());
Print "<table border cellpadding=3>";
while($info = mysql_fetch_array( $data ))
{
Print "<tr>";
Print "<th>fname:</th> <td>".$info['firstname'] . "</td> ";
Print "<th>lname:</th> <td>".$info['lastname'] . " </td></tr>";
}
Print "</table>";
?>
為什么不這樣:
$data = mysql_query("SELECT firstname, lastname FROM YYY WHERE id ". $row['client_id']) ;
or die(mysql_error());
如果只需要從XXX
表中獲取client_id,請使用子查詢:
$data = mysql_query("SELECT firstname, lastname FROM YYY WHERE id IN (SELECT client_id FROM XXX WHERE id=8 )") .
如果XXX.id
是PRIMARY KEY,則該子查詢將僅返回一行,因此如果使用id IN (SEL...)
,則使用id = (SEL...
用這個
SELECT firstname, lastname FROM YYY WHERE id IN (SELECT client_id FROM XXX WHERE id=8 )
只是為了回答這個問題:
$sql = "SELECT firstname, lastname FROM YYY WHERE client_id = ".$row['client_id']."";
但是,如前所述,請勿使用mysql_函數,以免它們已被棄用,將來會被刪除。 這意味着如果您仍然使用它們,則代碼將不會運行很長時間。
另外,我猜想用MySQL JOIN解決這個問題會更高效,更優雅。 如果您在執行此操作時遇到困難,請尋求幫助。
使用JOIN進行查詢的簡單示例如下:
$sql = "
SELECT
yy.firstname, yy.lastname
FROM xx
JOIN yy ON yy.client_id = xx.client_id
WHERE xx.id = ".$yourID."
";
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.