1つのフィールドに含まれるコンマ区切りのキーに基づいて2つのテーブルを結合したいと思います。したがって、2つのテーブルは「topic」と「link」であり、topicには「links」フィールドが含まれています。このフィールドには、テーブルリンク内のレコードのコンマ区切りの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フィドルを次に示します。
幸運を。
于 2013-01-31T06:57:20.927 に答える
0
これをありがとう。もう少し調べた後、トピックIDとリンクIDの個別のフィールドを含むtopic_lnksという3番目のテーブルを作成することにしました。これにより、結合の処理がはるかに簡単になります。私の場合、私は以下を使用します:
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 に答える