Mysql 连接四个表
我查看并尝试了各种示例,但仍然没有得到所需的结果 有一个名为“item”的表,其中包含有关媒体(书籍、视频、mp3等)的元数据 和一个带有视频URL的“item_format”表 和带有“类别”的表格 和一个名为“categories_item”的关系型to 我想找到我们youTube视频上的所有记录,按类别分类。这样,如果你想查找“为人父母”,我们会得到一个列表,一个youTube和标题Mysql 连接四个表,mysql,sql,Mysql,Sql,我查看并尝试了各种示例,但仍然没有得到所需的结果 有一个名为“item”的表,其中包含有关媒体(书籍、视频、mp3等)的元数据 和一个带有视频URL的“item_format”表 和带有“类别”的表格 和一个名为“categories_item”的关系型to 我想找到我们youTube视频上的所有记录,按类别分类。这样,如果你想查找“为人父母”,我们会得到一个列表,一个youTube和标题 parenting https://youtube/v/K8cJKirMo-A Love is
parenting https://youtube/v/K8cJKirMo-A Love is The Tey
https://youtube/v/uodqINpEC_w Discipline
https://youtube/v/Ko-ZboCzR64 Become Her Friend
依此类推,列出所有分配的类别
item.media类型,如“%video%”
item
===============
item_id media_type title
1 video/teachings Discipline
2 video/news December Update
3 video/landscape Quad Copter Noni Field
item_format
=================
item_format_id item_id format
1 2 https://youtube/v/K8cJKirMo-A
2 4 https://youtube/v/uodqINpEC_w
category
=================
category_id item_id name
1 2 parenting
2 4 ethics
category_item # the bridging table between item/category
=================
category_item_id category_id item_id
1 2 2
2 4 3
我尝试过这样的事情,但也会出错,坦白地说,这是我的深度
select item.title, item_format.format
from item i
left join item_format if
on i.item_id = if.item_id
left join category_item ci
on i.item_id = ci.item_id
left join category c
on ci.category_id = category_id
where i.media_type LIKE '%video5'
order by c.name
我到不了一垒
“字段列表”第1行中的未知列“item.title”# 看看它是否有效:
select i.title, if.format,c.name
from item i
inner join item_format if
on i.item_id = if.item_id
inner join category c
on i.item_id=c.item_id
inner join category_item ci
on c.category_id=ci.category_id
where i.media_type LIKE '%video%'
order by c.name
或者这个:
select i.title,if.format,c.name
from item i,item_format if,category c, category_item ci
where
i.item_id=if.item_id and
i.item_id=c.item_id and
c.category_id=ci.category_id
order by c.name;
您的查询还可以,但需要做一些小的更改。您使用表别名。在第一行中,只需使用表别名而不是表名称
select i.title, if.format,c.name
from item i
left join item_format if on (i.item_id = if.item_id)
left join category_item ci on (i.item_id = ci.item_id)
left join category c on (ci.category_id = c.category_id)
where i.media_type LIKE '%video5'
order by c.name
使用
,
进行连接
在很久以前就已经过时了。是的,但它不再是标准的一部分,不能保证将来的使用。而且它确实使查询的可读性大大降低。您忘记了像“%video5”中的shift键,但在这之后就可以使用了!