按整数排序不适用于我的连接查询

时间:2016-03-30 10:57:04

标签: mysql join epoch

我正在尝试从查询中订购我的数据,但它似乎没有订购任何东西。我有以下查询:

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旧。

2 个答案:

答案 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;