我对如何编写这个 SQL 语句的逻辑有点困惑。当用户单击一个标签(例如 HTML)时,它将显示所有以 HTML 作为标签的帖子。 (一个帖子可以有多个标签)
我有三个表:
- 发帖-->posting_id、标题、详细信息、 等等
- 标签-->标签ID、标签名
- postingtag-->posting_id, tagID
我想显示所有帖子的标题和添加日期。
global $dbc;
$tagID=$_GET['tagID']; //the GET is set by URL
//part I need help with. I need another WHERE statment to get to the posting table
$query = "SELECT p.title,p.date_added, t.tagname FROM posting as p,
postingtag as pt, tags as t WHERE t.tagID=$tagID";
$data = mysqli_query($dbc, $query);
echo '<table>';
echo '<tr><td><b>Title</b></td><td><b>Date Posted</b></td></tr>';
while ($row = mysqli_fetch_array($data)) {
echo '<tr><td>'.$row['title'].'</td>';
echo '<td>'.$row['date_added'].'</td></tr>';
}
echo '</table>';
}
我对 mySQL 相当陌生,所以仍在尝试弄清楚这一切的逻辑:)
最佳答案
使用 ANSI 语法写得更清楚:
select p.title, p.date_added, t.tagname
from posting p
inner join postingtag pt on p.postingID = pt.postingID
inner join tags t on pt.tagID = t.tagID
where t.tagID=$tagID
关于php - 如何编写此 SQL 语句来获取广告并发布? (PHP/MySQL),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2595120/