如何使用pdo和join方法在table-article visible = 1中选择table-article_category category_id = 5中的table-article行?
$category_id = 5;
article_category
id | article_id | category_id
1 | 1 | 5
2 | 2 | 1
3 | 3 | 5
article
id | subject | visible
1 | | 1
2 | | 1
3 | | 1
4 | | 1
table-article id equal table-article_category article_id
这就是我现在所做的,首先选择table-article_category make数组然后循环选择表格文章
... loop
$sql = "SELECT * FROM article WHERE visible = :visible AND id = :id";
$stmt = $connect_db_article->prepare($sql);
$stmt->bindValue(':visible', $visible);
$stmt->bindValue(':id', $article_category[$i]['article_id']);
$stmt->execute();
$rows = $stmt->fetchAll(PDO::FETCH_ASSOC);
如何使用join来获得相同的结果?
$sql = "SELECT * FROM article_category SUM(article) WHERE article_category.category_id = :category_id AND visible = :visible";
$stmt = $connect_db_article->prepare($sql);
$stmt->bindValue(':category_id', $category_id);
$stmt->bindValue(':visible', $visible);
$stmt->execute();
$rows = $stmt->fetchAll(PDO::FETCH_ASSOC);
答案 0 :(得分:1)
SELECT * FROM article
LEFT JOIN article_category
ON article_category.article_id = article.id
WHERE article_category.category_id = 5;
这是在假设一篇文章可以有多个类别的情况下工作的。如果每篇文章只能包含一个类别,那么在category_id
表格中包含article
字段可能会更有意义。