0

我想根据一个字段中包含的逗号分隔键连接两个表。所以这两个表是“主题”和“链接”,主题包含字段“链接”,其中包含表链接中记录的逗号分隔 ID。这可能吗?

4

2 回答 2

3

虽然您的问题应该更具描述性(最好有表定义、示例数据、所需的输出),@AaronBertrand 今天早些时候向我展示了如何在逗号分隔列表上连接表:

SELECT DISTINCT T.Id, L.Link 
FROM Topic T
   JOIN Link L ON CONCAT(',',T.Links,',') LIKE CONCAT('%', L.Link,'%')

这是一些浓缩的SQL Fiddle用作示例。

祝你好运。

于 2013-01-31T06:57:20.927 回答
0

谢谢你。在环顾四周后,我决定创建第三个名为 topic_lnks 的表,其中包含主题 ID 和链接 ID 的单独字段。这将使连接更容易处理。就我而言,我使用:

if(isset($_POST['submit'])){

        $query = "INSERT INTO topic (topic_pk,title,topic,majors,sub_discipline_fk,author_fk,created)
          VALUES ('','$title','$topic','$majors_string','$sub_discipline','$author_pk',NOW())";
        $result = mysql_query($query, $connection) or die(mysql_error());
        if($result){
            $topic_pk = mysql_insert_id();
        }

        foreach($links as $link){
                    $query_links = "INSERT INTO topic_links (topic_link_pk,topic_fk,link_fk)
          VALUES ('','$topic_pk','$link')";
        $result_links = mysql_query($query_links, $connection) or die(mysql_error());
        }
        if($result_links){
            $message = "- The topic '" . $title . "' has been created";
        }
}

然后我可以根据字段“topic_fk”查询获得链接的 topic_links 表。

于 2013-01-31T07:09:29.830 回答