我想根据一个字段中包含的逗号分隔键连接两个表。所以这两个表是“主题”和“链接”,主题包含字段“链接”,其中包含表链接中记录的逗号分隔 ID。这可能吗?
问问题
594 次
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 回答