簡體   English   中英

如何將這兩個查詢合並為一個

[英]how to combine these two queries into one

我有三個表: postscat_collectioncat_mapping
posts包含您期望在名為posts id,類型,標題,正文,作者,電子郵件,日期等的表中看到的字段

cat_collection包含ID,名稱,描述

cat_mapping包含* id,collection_id,post_id *

我目前有兩個查詢,第一個從帖子中選擇信息,第二個從cat_collectioncat_mapping中檢索關聯的類別

第一

SELECT post.id, post.type, post.title, post.body, post.date, post.author, post.email
FROM posts AS post
WHERE post.id = 1

第二

SELECT cat.name
FROM cat_collection AS cat
LEFT JOIN cat_mapping AS map ON map.collection_id = cat.id
WHERE map.post_id = 1

是否可以通過單個查詢返回所有帖子信息以及相關類別列表?

如果我了解您的數據模型,則只需要另一個左聯接。 您可能需要對連接進行重新排序,以確保查詢有效並返回正確的數據。

SELECT
  posts.id,
  posts.type,
  posts.title,
  posts.body,
  posts.date,
  posts.author,
  posts.email,
  cat.name
FROM
  posts
LEFT JOIN 
    cat_mapping AS map ON map.post_id = posts.id
LEFT JOIN 
    cat_collection AS collection ON map.collection_id = collection.id
WHERE
  posts.id = 1

請仔細考慮您的別名。 將“帖子”混為“帖子”是愚蠢的。 將“ cat_collection”別名為cat會造成混淆-表是關於cat而不是cat的集合的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM