[英]How do I inner join 2 SQL tables, but only take the first result from the second table?
[英]SQL: can I JOIN 2 tables according the first table “array” value?
我试图找到一种更好的方法一次返回2个表。
我的第一张桌子是:
[ID] [area]
1 13,12,15
6 18,17,13
第二张表是:
[areaname] [singlearea]
textOf12 12
textOf18 18
textOf15 15
现在,我需要返回每个[ID]匹配区域的名称,例如:
对于ID: 1,我需要以下数组: (textOf12,textOf15)
对于ID 6,我需要: (textOf18)仅。
这就是我现在拥有的(我认为它不是一个不错的代码):
$getall = "SELECT * FROM table1";
$resultfull = mysql_query($getall);
while ($res = mysql_fetch_assoc($resultfull))
{
$uarray = array();
$sqlarea = explode(",", $res['area']);
foreach($sqlarea as $userarea)
{
$areaarray = runquery("SELECT areaname From table2 WHERE singlearea = '".$userarea."'");
$value = mysql_fetch_object($areaarray);
array_push($uarray,$value->areaname);
}
var_dump($uarray);
有什么建议么?
非常感谢你!
逗号分隔的ID列表和ID值使用like
很好地匹配:
select t1.id, t2.areaname
from table1 t1, table2 t2
where concat(',', t1.area, ',') like concat('%,', t2.singlearea, ',%')
但是,建议使用其他链接表!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.