php - 从多个 MySQL 表中获取数据

标签 php mysql join

我的两张表是这样的:

       TABLE1                      TABLE2
+--------------------+      +--------------------+
|field1|field2|field3|  and |field2|field4|field5|
+--------------------+      +--------------------+

我已经在为 TABLE1 运行 SELECT 查询,并将所有数据分类到变量中:

$query = "SELECT * FROM TABLE1 WHERE field2 = 2";
$result = mysql_query($query);
$num_rows = mysql_num_rows($result);    
  if((!is_bool($result) || $result) && $num_rows) {
   while($row = mysql_fetch_array($result))
    {
   $field1 = $row['field1'];
   $field2 = $row['field2'];
   $field3 = $row['field3'];
    }
  }

我想要做的是从 TABLE2 上的“field4”获取数据并将其添加到我的变量中。我想得到 field4 WHERE field2 = 2

最佳答案

SELECT
  t1.*,
  t2.field4
FROM
  TABLE1 AS t1,
  TABLE2 AS t2
WHERE 
    t1.field2 = 2
  AND
    t1.field2 = t2.field2

您想连接两个表,这可以显式(使用 JOIN 运算符或其变体之一)或隐式(通过直接从多个表中选择 SELECTing)完成。

根据您的描述,我假设您希望在两个表中的 field2 具有相同值 (2) 的情况下进行连接。


如果 TABLE2 不会始终提供有效的连接候选者,但您仍需要来自 TABLE1 的数据,您应该使用 LEFT JOIN(在没有匹配项的情况下为 field4 提供 NULL):

SELECT
  t1.*,
  t2.field4
FROM
    TABLE1 AS t1
  LEFT JOIN
    TABLE2 AS t2
  ON
    t1.field2 = t2.field2
WHERE 
  t1.field2 = 2

关于php - 从多个 MySQL 表中获取数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2627266/

相关文章:

mysql - 如何优化我的查询?

ruby-on-rails - Rails :include vs.:加入

php - mssql_connect() 与 PHP5 和 MSSQL2012 Express

php - HTTPS PHP 大型 XML 负载无法通过回显到达客户端

php - 如何将 jQuery 自动完成文本框与 DataTables 结合使用

mysql - 有没有办法将几个不同的查询(几乎相同)压缩成一个?

php - 更新 mysql 数据库中的一行?

php - PHP CodeSniffer 如何检查没有扩展名的文件?

python - 使用 peewee 进行多处理批量插入

MySQL 连接和第二个表中的字段作为结果中的列