我有3个表:
- 术语:(term_id…)
- 标签:(tag_id,tag_name);以及
- term_tags(term_id,tag_id)
term_tags是一个中间表,在terms和tags表中分别对term_id和tag_id有几个外键约束。
我正试图使用下面的PHP代码来提取与给定术语id相关联的标签。
<?php
include('includes/config.php');
$sql = "SELECT tag_name FROM tags JOIN term_tags WHERE term_id = ?";
$stmt = $db->prepare($sql);
if($stmt->execute(array($_GET['id']))){
while($row = $stmt->fetch()){
echo $row['tag_name'], "<br />";
}
}
?>
发生的情况是,所有的行都是从标签表中提取的,我只想要与给定的术语id相关联的标签。我不确定这是我的SQL语句还是我的PHP,PHP对我来说很好,但我还是一个新手。
帮个忙?
您的sql查询将如下所示:
SELECT tag_name FROM tags INNER JOIN term_tags
ON tags.tag_id=term_tags.tag_id
WHERE term_id = ?
像这样使用内部联接:-
SELECT tag_name FROM tags inner JOIN term_tags on
tags.tag_id=term_tags.tag_id WHERE term_id = ?