[英]Join three (3) MySQL tables
不幸的是,我不像SQL那樣好,我正在嘗試完成三個表之間的聯接。
這是一個粗略的簡化表結構:
links: id, url, description
categories: id, name, path
link_cat: link_id, cat_id
我要的選擇語句應該有
links.id, link.url, link.description, categories.name, categories.path
通過link_cat表匹配鏈接和類別的位置。 我認為,只要每個鏈接只有一個類別,這應該不太難。 這就是我所假設的。 如果不是這樣,則最好采用另一種方式將多個類別逗號分隔為category.name字段。
我希望這一切都是可以理解的,聽上去不會太傻。
# Add each field you want to the select list
SELECT links.id, link.url, link.description, categories.name, categories.path
# Add the "links" table to the list of tables to select from
FROM links
# Add the "link_cat" table, specify "link_id" as the common field
JOIN link_cat USING (link_id)
# Add the "categories" table specifying the "cat_id" as the common field
JOIN categories USING (cat_id)
SELECT links.id, links.url, links.description, categories.name, categories.path
FROM links
INNER JOIN link_cat ON links.id = link_cat.links_id
INNER JOIN categories ON categories.id = link_cat.category_id
http://sqlfiddle.com/#!9/6a81e/1
SELECT
l.id,
l.url,
l.description,
c.name,
c.path
FROM links l
INNER JOIN link_cat lc
ON lc.link_id = l.id
INNER JOIN categories c
ON lc.cat_id = c.id
SELECT links.id, links.url, links.description, categories.name, categories.path
FROM links
INNER JOIN link_cat ON link_cat.link_id = links.id
INNER JOIN categories ON link_cat.cat_id = categories.id
SELECT link.id, link.url, link.description, categories.name, categories.path
FROM link, categories, link_cat
WHERE
link.id = link_cat.link_id
AND categories.id = link_cat.category_id
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.