簡體   English   中英

如何使用具有相同ID的MySQL和PHP內部聯接表?

[英]How to inner join tables with mysql & php with same id?

我有兩個表table_1table_2

表格1

id               name              date
--------------------------------------------------------
1111111111      product 1         1.12.2013
2222222222      product 2         2.4.1995
3333333333      product 3         1.2.2016

table_2

id      name       date          t_id
--------------------------------------------------------
1      abc         1.1.2013    1111111111
2      def         2.4.1995    2222222222
3      ghi         1.2.2016    2222222222
4      abc         1.1.2013    3333333333
5      def         2.4.1995    1111111111
6      ghi         1.2.2016    1111111111

我想SELECT name, date FROM table_2; 但是我想要的值是當table_1.id = table_2.t_id 請解釋我如何用php,mysql。 謝謝

認為您想要的只是兩個表之間的簡單連接:

SELECT t2.id,
       t2.name,
       t2.date,
       COALESCE(t1.name, 'NA') AS productName,
       COALESCE(t1.date, 'NA') AS productDate
FROM table_2 t2
LEFT JOIN table_1 t1
    ON t1.id = t2.t_id

順便說一句,您的日期以奇怪的格式存儲在varchar 您應該切換為使用標准MySQL格式。 例如,您應該在某種date列中使用2013-01-12而不是varchar列中的1.12.2013

演示在這里:

SQLFiddle

您可以使用mysql查詢來執行此操作:

select table_2.name, table_2.date FROM table_1 left join table_2 on table_1.id = table_2.t_id;

您必須執行2個查詢,第一個查詢從表1中檢索ID,第二個查詢從表2中檢索名稱和日期

$query ="SELECT id FROM table_1"; 
$result = mysql_query($query) or die("Query Failed".mysql_error());
while($row=mysql_fetch_array($result)){
  $query_1 ="SELECT name,date FROM table_2 WHERE t_id='$row[id]'"; 
  $result_1 = mysql_query($query_1) or die("Query Failed".mysql_error());
  $row_1=mysql_fetch_array($result_1);
  print_r($row_1);
}

對於其他可能遇到類似問題的人,這可能會有所幫助。

SELECT table2.columnname, table2.columnname from table1, table2 where table1.id = table2.id

ID列應具有相同的值,但名稱不同,以便不使用join即可工作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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