如何使用mysql&内部连接表php具有相同的ID?

时间:2016-07-22 06:46:52

标签: php mysql

我有两张表table_1table_2

TABLE_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做到这一点。感谢

4 个答案:

答案 0 :(得分:0)

认为你想要的只是两个表之间的简单连接:

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格式。例如,1.12.2013列中的varchar不是2013-01-12,而是date列中的{{1}}。

演示:

SQLFiddle

答案 1 :(得分:0)

您可以使用mysql查询执行此操作:

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

答案 2 :(得分:0)

您必须执行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);
}

答案 3 :(得分:0)

对于可能遇到类似问题的其他人,这可能会有所帮助。

setStorageType('localStorage') // which is default

ID列应具有相同的值,但不同的名称可以在不使用连接的情况下工作。