如何在PHP和MySQL中一次从2个表中获取信息?

时间:2011-05-24 02:47:53

标签: php mysql join

<?php 

include('includes/config.php');
$topi = $_GET['id']; //id of url

mysql_select_db("ban", $con);

$query = "SELECT * FROM `basic` WHERE id = '$topi' LIMIT 0, 30"; 

$result = mysql_query($query) or die(mysql_error());

$row = mysql_fetch_array($result) or die(mysql_error());

$aa = $row['item'];
$cc = $row['moreinfo'];
$dd = $row['contactinfo'];
$ff = $row['id'];

在此脚本中,我从表basic获取信息,但我想从另一个名为users的表中检索数据。如何一次从两个表中检索数据?

users表由以下列组成:

  • 电子邮件
  • 用户名
  • ID

2 个答案:

答案 0 :(得分:4)

您需要JOIN两个表上的公共值,称为foreign key。根据评论中的要求发布users表的结构后,我可以提供更完整的示例。

编辑:参见示例。这会调用显式列名而不是SELECT *

$query = "SELECT 
    basic.id,
    basic.item,
    basic.moreinfo,
    basic.contactinfo,
    users.email,
    users.username
  FROM basic JOIN users ON basic.id = users.id
  WHERE id   = '$topi'
  LIMIT 0 , 30"; 

答案 1 :(得分:3)

你可以在另一张桌子上使用JOIN。

$query = "SELECT *
FROM basic b
JOIN users u ON b.user_id = u.user_id
WHERE id = '$topi'
LIMIT 0, 30";

类似的东西,但基于你的领域。

请注意:ON子句指定您要匹配的内容。