SQL元表帮助(mysql)
我有3个表(“新闻”、“类别”和作为联接表的“元”)。我只是想过滤包含SQL元表帮助(mysql),mysql,sql,Mysql,Sql,我有3个表(“新闻”、“类别”和作为联接表的“元”)。我只是想过滤包含category\u id的新闻,它是作为过滤参数提供的。我尝试了下面的查询(以及类似的查询),但它返回了新闻表中的所有新闻 那么如何通过meta\u id(category\u id)过滤这些新闻呢 非常感谢 // category table category_id | category_name --------------------------- 55 | Sport 56 | P
category\u id
的新闻,它是作为过滤参数提供的。我尝试了下面的查询(以及类似的查询),但它返回了新闻表中的所有新闻
那么如何通过meta\u id(category\u id)
过滤这些新闻呢
非常感谢
// category table
category_id | category_name
---------------------------
55 | Sport
56 | Politics
// meta table
meta_id | meta_type | rel_id | rel_type
---------------------------------------
55 | category | 78345 | news
56 | category | 91278 | news
Notes:
rel_id (in meta table) = id (in news table) // i don't need it in this case
meta_id (in meta table) = category_id (in category table)
您必须在
ON
子句中添加一个条件
SELECT n.*
FROM `news` n
LEFT JOIN `metas` m ON m.meta_type='category' AND m.meta_id = n.category_id
WHERE m.meta_id=55 AND n.status=1
GROUP BY n.id
ORDER BY n.id DESC
LIMIT 0,10
选择*
来自'news`n
左连接'metas`m ON m.meta_type='category'和m.meta_id=n.category_id
其中m.meta_id=55,n.status=1
按n.id分组
按n.id描述订购
限值0,10
您必须在
ON
子句中添加一个条件
SELECT n.*
FROM `news` n
LEFT JOIN `metas` m ON m.meta_type='category' AND m.meta_id = n.category_id
WHERE m.meta_id=55 AND n.status=1
GROUP BY n.id
ORDER BY n.id DESC
LIMIT 0,10
选择*
来自'news`n
左连接'metas`m ON m.meta_type='category'和m.meta_id=n.category_id
其中m.meta_id=55,n.status=1
按n.id分组
按n.id描述订购
限值0,10
最重要的是将
metas
链接到news
。如果我没有看错你的问题,链接字段是m.rel\u id=n.id
。以下示例查询应筛选类别55:
select *
from metas m
join news n
on m.rel_id = n.id
where m.meta_type = 'category'
and m.meta_id = 55
and n.status = 1
order by
n.id desc
limit 0, 10
注意:不确定为什么查询中有
分组依据。当然不需要筛选类别 最重要的是将metas
链接到news
。如果我没有看错你的问题,链接字段是m.rel\u id=n.id
。以下示例查询应筛选类别55:
select *
from metas m
join news n
on m.rel_id = n.id
where m.meta_type = 'category'
and m.meta_id = 55
and n.status = 1
order by
n.id desc
limit 0, 10
注意:不确定为什么查询中有分组依据。当然不需要筛选类别 但是没有n.category\u id
。我也尝试了关于m.meta_type='category'和m.meta_id=2的方法,但是没有用。但是没有n.category_id
。我也试过在m.meta_type='category'和m.meta_id=2上使用,但是没有用。我也试过了,但是不起作用,没有n.category_id
,由rel_id
保留的新类别,我不需要它。我只是想通过category\u id
(所以meta\u id
)列出新闻。我也尝试了这个方法,但是不起作用,没有n.category\u id
,由rel\u id
保留的新类别,我不需要它。我只是想按category\u id
(所以meta\u id
)列出新闻。您的news
表的结构是什么?您的news
表的结构是什么?谢谢您的回答<代码>分组依据:其中
获取列表(搜索)页面上的许多参数,需要使用分组依据,但这里只是“按类别筛选”条件,不需要。谢谢回答groupby
for:where
获取列表(搜索)页面上的许多参数,需要使用groupby,但这里只是不需要的“filter\u by\u category”条件。