2014-05-04 74 views
0
SELECT t.dateline AS date,t.tid, t.subject, u.avatar,t.views, t.username, t.replies, u.profilepic, t.uid, p.thumbsup, t.firstpost, f.name, f.fid, p.message, a.updatetime, a.md5hash, a.uploadtime, a.aid, a.attachname, a.filename, a.thumbs, td.vidid, td.cat, td.portada 
FROM ". TABLE_PREFIX ."threads t 
LEFT JOIN ".TABLE_PREFIX."users u ON (u.uid=t.uid) 
LEFT JOIN ".TABLE_PREFIX."forums f ON (f.fid=t.fid) 
LEFT JOIN ".TABLE_PREFIX."xtattachments a ON (a.tid=t.tid) 
LEFT JOIN ".TABLE_PREFIX."threadfields_data td ON (td.tid=t.tid) 
LEFT JOIN ".TABLE_PREFIX."posts p ON (p.pid=t.firstpost) 
WHERE t.fid IN ($f4id) AND t.uid IN ($show_post_list) 

UNION ALL 

SELECT th.dateline AS date, th.thumbsup, th.uid 
FROM ". TABLE_PREFIX ."thumbspostrating th 


ORDER BY date DESC 
LIMIT ".(($page-1)*$perpage).", ".$perpage); 

例子:两个不同的表中的一个输出在MySQL

  1. 主题头号界线:今天
  2. 像头号界线:昨天下午1:10
  3. 主题二号界线:昨天1 :09pm
  4. 像第二条日期:昨天下午1:08
  5. 像第三条日期:昨天1:07 pm
  6. 第三条日期线:昨天下午1:05

我不知道为什么这不起作用? 在ORDER BY < - 我需要t.datelinel.dateline为一个做这个例子。

1222 - 所使用的SELECT语句具有不同的列数

+1

定义命令:'不work'? – CodeBird

+0

是uid在这里定义为一列吗? –

+1

1222 - 使用的SELECT语句有不同数量的列 当然t.uid和th.uid –

回答

0

ORDER BY的仅适用于第二个查询:

Select * From (
SELECT t.dateline, t.name, u.avatar 
FROM ". TABLE_PREFIX ."threads t 
LEFT JOIN ".TABLE_PREFIX."users u ON (u.uid=t.uid) 

UNION ALL 

SELECT l.dateline, l.name, l.avatar 
FROM ". TABLE_PREFIX ."likes l 
LEFT JOIN ".TABLE_PREFIX."treads t ON (t.uid=l.uid)) allData 

ORDER BY allData.dateline DESC 
LIMIT 10; 
+0

是“uid”一列吗? –

1

你可以尝试做的界线添加到您的选择,选择L .dateline作为日期线,l.name,l.avatar。

这对我有用。如果不工作,你总是可以做你选择一个选择,然后导致它会读这样的事情

SELECT dateline, name, avatar FROM ( 
    SELECT t.dateline, t.name, u.avatar 
    FROM ". TABLE_PREFIX ."threads t 
    LEFT JOIN ".TABLE_PREFIX."users u ON (u.uid=t.uid) 

    UNION ALL 

    SELECT l.dateline, l.name, l.avatar 
    FROM ". TABLE_PREFIX ."likes l 
    LEFT JOIN ".TABLE_PREFIX."treads t ON (t.uid=l.uid) 
) as x 
ORDER BY x.dateline DESC 
LIMIT 10; 
+0

在这里是一个专栏? –

+0

t.uid和th.uid –

+0

它发送和错误: 1222 - 使用的SELECT语句有不同数量的列 –

相关问题