我正在尝试从查询中订购我的数据,但它似乎没有订购任何东西。我有以下查询:
SELECT Sleutelwoord.URL
FROM Sleutelwoord
LEFT JOIN Artikel ON
Artikel.URL = Sleutelwoord.URL
AND Sleutelwoord.TEXT = 'somekeyword'
ORDER BY Artikel.Datum DESC;
表格:
Artikel // =文章
PK URL varchar(255) //the url
Datum bigint //the date
Sleutelwoord // =关键字
PK URL varchar(255) //the url
PK TEXT varchar(255) //the keyword
Aantal int //amount of keywords
我将纪元时间(在java中为长)存储在' Datum'行。我希望网址根据最新(最大)是第一个的纪元时间排序。为什么我的查询不这样做,我该如何解决这个问题?谢谢。
编辑:在表格辩护中交换了文章/关键字。
假设我有3篇文章:
url1 - 1459336143
url2 - 1459336153
url3 - 1459336161
其中url 1是第一个,2是第二个,3是最后一个(和最新的)。
关键字表格会是这样的:
url1 - randomword - 1
url1 - anotherword - 1
url1 - duplicateword - 2
url2 - randomword - 1
url2 - anotherword - 1
url2 - duplicateword - 2
url3 - something- 1
url3 - else- 1
url3 - nothing- 2
如果我的关键字是随机字符,我想要回复url1和url2,但我希望它们按日期(纪元)排序。所以我想要
url2
url1
因为url2是最新的,url1比url2旧。
答案 0 :(得分:0)
您已提及
ORDER BY Artikel.Datum DESC;
但是对于Artikel表,Datum不是列
PK URL varchar(255) //the url
PK TEXT varchar(255) //the keyword
Aantal int //amount of keywords
如果您想根据Datum订购,请使用
ORDER BY Sleutelwoord.Datum DESC;
答案 1 :(得分:0)
使用INNER JOIN您的查询将仅检索两个表中匹配的行。
SELECT s.URL
FROM Sleutelwoord AS s
INNER JOIN Artikel AS a ON
a.URL = s.URL
WHERE s.TEXT = 'somekeyword'
ORDER BY a.Datum DESC;