我很难理解如何按来自另一个表格的数据订购查询。
现有查询为:SELECT ID FROM UserTour WHERE Live = 1 ORDER BY LastUpdated DESC
这显然是通过专栏' LastUpdated'在表格' UserTour'
中但是,我需要按照“LastUpdated'这是在另一个表格中#ImageLinks',Where' TypeID' = 16(再次在' ImageLinks')。
我希望这是有道理的。
所以它会像:$ids = @mysql_values('SELECT ID FROM UserTour WHERE Live = 1 ORDER BY ('Select ID FROM 'ImageLinks' Where TypeID = 16 Order by LastUpdated DESC')');
任何帮助将不胜感激如何做到这一点。干杯
答案 0 :(得分:0)
如果两个表之间没有任何关系,您的问题中的查询将如下所示
select id from
(
SELECT
ID
, (Select ID FROM ImageLinks Where TypeID = 16
Order by LastUpdated DESC limit 1) as order_val
FROM UserTour
WHERE Live = 1
) x
ORDER BY x.order_val
哪个有效,但不会有任何排序,因为order_val
列会有固定值。
如果ID以1:1的比例链接(没有任何迹象表明它们是,但只是假设')我们可以这样做:
select u.id
from UserTour u inner join ImageLinks i on u.ID = i.ID
where u.Live = 1 and i.TypeID = 16
order by i.LastUpdated desc
如果上述内容不正确,则必须确定两个表的关联方式并相应加入。
换句话说 ,如果表格没有连接,那么您就无法根据表格中的列提供一个表格的数据排序其他
<强>更新强>
select
i.LinkID
, i.LastUpdated
from UserTour u inner join ImageLinks i
on u.ID = i.LinkID
where u.Live = 1 and i.TypeID = 16
group by i.LinkID, i.LastUpdated
order by i.LastUpdated desc LIMIT 30