我有两张表table_1
和table_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做到这一点。感谢
答案 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}}。
演示:
答案 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列应具有相同的值,但不同的名称可以在不使用连接的情况下工作。