[英]Fetch data from multiple MySQL tables
我的兩個表如下所示:
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
,這可以顯式地(使用JOIN
運算符或其變體之一)隱式地JOIN
(通過SELECT
直接從多個表中進行)。
根據您的描述,我假設您要進行field2
,其中兩個表中的field2
具有相同的值( 2
)。
如果 TABLE2
並不總是提供有效的連接候選者,但是您仍然希望TABLE1
的數據,則應該使用LEFT JOIN
(在沒有匹配field4
下,為field4
提供NULL
):
SELECT
t1.*,
t2.field4
FROM
TABLE1 AS t1
LEFT JOIN
TABLE2 AS t2
ON
t1.field2 = t2.field2
WHERE
t1.field2 = 2
您需要使用JOIN
:
SELECT TABLE1.*,TABLE2.field4 FROM TABLE1 JOIN TABLE2 ON TABLE1.field2=TABLE2.field2 WHERE TABLE1.field2=2;
嗨,嘗試以下作為您的查詢。
在選擇查詢中始終不建議使用*
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
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.