我想基于一个字段中包含的逗号分隔键来连接两个表。因此,这两个表是'topic'和'link',主题包含字段'links',其中包含表链接中记录的逗号分隔ID。这可能吗?
答案 0 :(得分:3)
虽然你应该对你的问题更具描述性(最好有表定义,样本数据,所需的输出),但@AaronBertrand今天早些时候向我展示了如何在逗号分隔列表上连接表:
SELECT DISTINCT T.Id, L.Link
FROM Topic T
JOIN Link L ON CONCAT(',',T.Links,',') LIKE CONCAT('%', L.Link,'%')
以下是一些浓缩的SQL Fiddle作为示例。
祝你好运。答案 1 :(得分: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_links表,根据字段'topic_fk'获取链接。