Как выбрать строки table-article в table-article_category category_id = 5 также в table-article visible = 1 с помощью метода pdo и соединения?
$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, затем зацикливаюсь, чтобы выбрать table article.
... 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);
Как использовать соединение, чтобы получить тот же результат?
$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);
1 ответ
SELECT * FROM article
LEFT JOIN article_category
ON article_category.article_id = article.id
WHERE article_category.category_id = 5;
Это работает в предположении, что статья может иметь более одной категории. Если у вас может быть только одна категория для каждой статьи, возможно, имеет смысл включить поле category_id
в таблицу article
.
Похожие вопросы
Новые вопросы
php
PHP — это открытый, мультипарадигмальный, динамически типизированный и интерпретируемый язык сценариев, изначально разработанный для веб-разработки на стороне сервера. Используйте этот тег для вопросов о программировании на языке PHP.
”
и‘
и’
НЕ являются допустимыми кавычками PHP.