繁体   English   中英

SQL:我可以根据第一个表“数组”值联接2个表吗?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM