0

我需要从数据库中的一个表中获取 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>"; 
?>
4

4 回答 4

0

如果您只需要从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...

于 2013-08-12T11:50:43.157 回答
0

为什么不这样:

$data = mysql_query("SELECT firstname, lastname FROM YYY WHERE id ". $row['client_id']) ;
or die(mysql_error()); 
于 2013-08-12T11:48:43.993 回答
0

用这个

  SELECT firstname, lastname FROM YYY WHERE id IN (SELECT client_id FROM XXX WHERE id=8 )
于 2013-08-12T11:51:41.737 回答
0

只是为了回答这个问题:

$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."
";
于 2013-08-12T11:52:16.053 回答