[英]How to inner join tables with mysql & php with same id?
我有兩個表table_1
和table_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
。
演示在這里:
您可以使用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.