我對如何編寫這條SQL語句的邏輯有些困惑。當用戶點擊一個標籤時,比如HTML,它會顯示所有帶有HTML標籤的帖子。 (後可以有多個標籤)如何編寫此SQL語句以獲取廣告併發布? (PHP/MySQL)
我有三個表:
- 發帖 - > posting_id,職稱,詳細, 等
- 標籤 - >標籤識別,標記名
- postedtag - > 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的所以還是想弄清楚這一切:)邏輯
哇,你讓它看起來很簡單。謝謝!請問你是如何提出這個邏輯的? – ggfan 2010-04-07 19:07:49
您是否基本上說要首先將GET的tagID與tags表的tagID進行匹配。然後通過說p.postingID = pt.postingID在發佈和張貼標籤表之間建立連接。 是否正確? – ggfan 2010-04-07 19:11:46
@ggfan這很簡單:[貼文] ---> [postedtag] <--- [標籤],因此poststag將加入與標籤匹配的poststag中的行,然後postingtag將加入與標籤匹配的標籤行ID。您應該閱讀Google上有關SQL關於join關鍵字的教程。 :) – Erick 2010-04-07 19:13:01