簡體   English   中英

從多個MySQL表中獲取數據

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM