本帖最后由 walunwine2 于 2013-05-10 17:35:26 编辑

解决方案 »

  1.   

    表结构是什么,什么字段连接
    select * from news_articles a left join
     news_articles_text b on a.article_id = b.article_id
     left join news_authors c on a.article_id = c.article_id
    where c.authors_id = 1
      

  2.   

    我刚弄了一下那个方法好像很麻烦才能弄出来.所以用之前的代码改了一下  $news_list_by_author_sql=
      'select n.article_id,n.news_last_modified, n.authors_id, nt.news_article_name, nt.news_article_text from   ' . TABLE_NEWS_ARTICLES . ' 
      n left join   ' . TABLE_NEWS_ARTICLES_TEXT . ' 
      nt on 
      (n.article_id = nt.article_id and nt.language_id = \'' . (int)$_SESSION['languages_id'] . '\') 
      and n.news_status = \'1\' 
       and n.authors_id = \'1\'后加的
      '  . ' order by n.article_id DESC limit 4';
      
      
      $news = $db->Execute($news_list_by_author_sql);但是输出的结果就显示不正常,不知道是不是我的语法错误?麻烦帮忙看下吧默认输出4条新闻,包括标题,日期,内容
    n.authors_id = 1下有1条新闻,n.authors_id = 2下有6条新闻
    ------------------------------------------------------------------------------
    执行上面的代码显示出来的不正常
    这是n.authors_id = 1时的样式,正常他下面只有1条新闻应该其他的3个位置就什么都不显示了这是n.authors_id = 2时的样式,和id=1正好相反了------------------------------------------------------------------------------
    两个表的结构如下
    第一个news_articles
     -- phpMyAdmin SQL DumpSET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";
    /*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
    /*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
    /*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
    /*!40101 SET NAMES utf8 */;-- 数据库: `pure`-- 表的结构 `news_articles`CREATE TABLE IF NOT EXISTS `news_articles` (
      `article_id` int(11) NOT NULL AUTO_INCREMENT,
      `authors_id` int(11) NOT NULL DEFAULT '0',
      `news_image` varchar(64) DEFAULT NULL,
      `news_image_two` varchar(64) DEFAULT NULL,
      `news_date_added` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
      `news_last_modified` datetime DEFAULT NULL,
      `news_date_published` datetime DEFAULT NULL,
      `news_status` tinyint(1) NOT NULL DEFAULT '0',
      `sort_order` tinyint(6) NOT NULL DEFAULT '0',
      PRIMARY KEY (`article_id`),
      KEY `news_date_published` (`news_date_published`)
    ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;--
    -- 转存表中的数据 `news_articles`
    --
    第二个news_articles_text
     
    -- phpMyAdmin SQL DumpSET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";
    /*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
    /*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
    /*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
    /*!40101 SET NAMES utf8 */;-- 数据库: `pure`-- ---------------------------------------------------------- 表的结构 `news_articles_text`CREATE TABLE IF NOT EXISTS `news_articles_text` (
      `article_id` int(11) NOT NULL AUTO_INCREMENT,
      `language_id` int(11) NOT NULL DEFAULT '1',
      `news_article_name` varchar(64) NOT NULL DEFAULT '',
      `news_article_text` text,
      `news_article_shorttext` text,
      `news_article_url` varchar(255) DEFAULT NULL,
      `news_article_url_text` varchar(64) DEFAULT NULL,
      `news_article_url_2` varchar(255) DEFAULT NULL,
      `news_article_url_2_text` varchar(64) DEFAULT NULL,
      `news_article_url_3` varchar(255) DEFAULT NULL,
      `news_article_url_3_text` varchar(64) DEFAULT NULL,
      `news_article_url_4` varchar(255) DEFAULT NULL,
      `news_article_url_4_text` varchar(64) DEFAULT NULL,
      `news_article_url_store` int(11) DEFAULT NULL,
      `news_article_url_store_2` int(11) DEFAULT NULL,
      `news_article_url_store_misc` varchar(255) DEFAULT NULL,
      `news_article_url_store_misc_text` varchar(64) DEFAULT NULL,
      `news_article_url_store_misc_2` varchar(255) DEFAULT NULL,
      `news_article_url_store_misc_2_text` varchar(64) DEFAULT NULL,
      `news_image_text` text,
      `news_image_text_two` text,
      PRIMARY KEY (`article_id`,`language_id`),
      KEY `news_article_name` (`news_article_name`)
    ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;-- 转存表中的数据 `news_articles_text`麻烦帮忙看一下。十分感谢
      

  3.   

       建议你列出你的表结构,并提供测试数据以及基于这些测试数据的所对应正确结果。
       参考一下这个贴子的提问方式http://topic.csdn.net/u/20091130/20/8343ee6a-417c-4c2d-9415-fa46604a00cf.html
       
       1. 你的 create table xxx .. 语句
       2. 你的 insert into xxx ... 语句
       3. 结果是什么样,(并给以简单的算法描述)
       4. 你用的数据库名称和版本(经常有人在MS SQL server版问 MySQL)
       
       这样想帮你的人可以直接搭建和你相同的环境,并在给出方案前进行测试,避免文字描述理解上的误差。