我的两张表是这样的:
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
运算符或其变体之一)或隐式(通过直接从多个表中选择 SELECT
ing)完成。
根据您的描述,我假设您希望在两个表中的 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/