我的两张桌子看起来像这样:
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
答案 0 :(得分:3)
SELECT
t1.*,
t2.field4
FROM
TABLE1 AS t1,
TABLE2 AS t2
WHERE
t1.field2 = 2
AND
t1.field2 = t2.field2
您希望加入两个表,可以显式地(使用JOIN
运算符或其中一个变体)隐式地(通过SELECT
直接从多个表中完成)。
根据您的描述,我想您要进行联接,其中两个表中的field2
具有相同的值(2
)。
如果 TABLE2
并不总是提供有效的加入候选者,但仍需要TABLE1
的数据,则应使用LEFT JOIN
(NULL
1}}对于field4
,其中没有任何内容匹配):
SELECT
t1.*,
t2.field4
FROM
TABLE1 AS t1
LEFT JOIN
TABLE2 AS t2
ON
t1.field2 = t2.field2
WHERE
t1.field2 = 2
答案 1 :(得分:1)
答案 2 :(得分:1)
您需要使用JOIN
:
SELECT TABLE1.*,TABLE2.field4 FROM TABLE1 JOIN TABLE2 ON TABLE1.field2=TABLE2.field2 WHERE TABLE1.field2=2;
答案 3 :(得分:0)
您可以尝试以下作为您的查询。
在选择查询
中始终不首选使用*SELECT T1.field1,T1.field2,T1.field3, T2.field4 FROM TABLE1 AS T1 INNER JOIN TABLE2 AS T2 ON T1.field2=T2.field2 WHERE field2 = 2