Birden fazla MySQL tablodan veri getirmek

4 Cevap php

Benim iki tablo şöyle:

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

Zaten TABLE1 için bir SELECT sorgusu çalıştıran ve değişkenlerin içine tüm verilerin tasnif ediyorum:

$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'];
    }
  }

Ne yapmak istiyorum Tablo2 üzerine 'field4' den veri almak ve benim değişkenlere eklemek olduğunu. Ben field4 NEREDE field2 = 2 almak isterim

4 Cevap

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

Sen (doğrudan birden fazla tablodan JOIN operator or one of its variants) our implicitly (by SELECT ing kullanarak) açıkça yapılabilir iki tablo katılmak istiyorum.

Açıklamasından, sana field2 iki tabloda aynı değere sahip olduğu join (2) yapmak istediğinizi varsayalım.


If TABLE2 her zaman geçerli katılmak aday vermeyecektir ama yine TABLE1, bir LEFT JOIN (vererek kullanmalısınız gelen veri istiyorum NULL için field4 hiçbir şey eşleşti burada):

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

merhaba ur sorgu olarak aşağıdakileri deneyin.

Bu select sorgusunda * kullanmak için her zaman tercih edilmez

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