这对我来说是一个很复杂的查询,但如果有人有想法请发帖ID ...
我想做这样的事情
第1页
发布
发布
张贴
第2页
发布
发布
交
这是我的查询
$result = mysql_query("SELECT content.* FROM content WHERE content.site IN
(SELECT site_id FROM site_subscription WHERE user_id = ".$_SESSION['userid'].")
ORDER by content.site DESC");
while($row = mysql_fetch_assoc($result)) {
$array[] = $row;
}
和我展示帖子
if(is_array($array)) {
foreach($array as $row) {
include($basepath.'/template/item.php');
}
}
这是有效的,帖子按site_id排序,但需要从其他表格中获取 site_name ,表格名称网站,而不是 site_name 喜欢以上站点1,站点2,站点3
喜欢的东西
SELECT * FROM site WHERE id='content.site'
答案 0 :(得分:0)
" SELECT * FROM content INNER JOIN site ON content.site = site.id
WHERE site.id IN(
SELECT site_id FROM site_subscription WHERE user_id = ".$_SESSION['userid'].")
ORDER BY site.name"
答案 1 :(得分:0)
$result = mysql_query("SELECT content.* FROM content
INNER JOIN site ON content.site = site.id
WHERE content.site IN
(SELECT site_id FROM site_subscription WHERE user_id = ".$_SESSION['userid'].")
ORDER by content.site DESC");
答案 2 :(得分:0)
执行JOIN
而不是子查询。尝试这样的事情:
SELECT content.*, site_name, FROM content
JOIN site_subscription ON content.site = site_id
WHERE site_subscription.user_id = <USER_ID>
ORDER by content.site DESC
GROUP BY site_name
MysSQL将处理此查询,但它不完全正确。实际上,您无法选择content.*
,因为在对行进行分组时,您只需选择聚合字段。