【问题标题】:LEFT JOIN, ORDER BY and paginationLEFT JOIN、ORDER BY 和分页
【发布时间】:2016-03-17 09:48:58
【问题描述】:

我列表中的元素未按字母顺序显示。此列表逐页显示(分页:第 1 页、第 2 页、第 3 页 ....)。
我使用了ORDER BY,但我的请求返回了错误的结果。

SELECT * FROM structure
  LEFT JOIN typologie
    ON structure.id_typologie = typologie.id_typologie 
  LEFT JOIN pays 
    ON structure.id_pays = pays.id
ORDER BY nom_contact ASC

数据示例:

区域关注鲁瓦西
AP-HP(档案馆)
美联社-惠普局研究
Apprentis d'Auteuil MECS Saint-Jean Eudes
阿提拉
卡罗琳城堡
拉维莱特城堡
奇维洛 (Mme)
CICR 日内瓦
CICR 金沙萨

问题出在哪里?

【问题讨论】:

  • 请添加示例数据。
  • nom_contact 属于哪个表?
  • 仅仅查询通常是不够的。我们希望获得有关您的设置的更多信息,例如您的表格的定义。我希望您管理查询中的分页以获得更快的结果?
  • 感谢您的回答。 @jarlh : nom_contact 参考表 structure。我使用了structure.nom_contact,结果相同。
  • 似乎你想要一个不区分大小写的顺序。尝试 ORDER BY lower(nom_contact) ASC

标签: php mysql sql pagination


【解决方案1】:

我看到您的排序区分大小写。将您的 ORDER BY 更改为以下内容:

SELECT
    s.*
FROM
    structure s
    LEFT JOIN typologie t ON s.id_typologie = t.id_typologie 
    LEFT JOIN pays p ON s.id_pays = p.id
ORDER BY
    LOWER(s.nom_contact) ASC

这应该可以解决您的问题。

【讨论】:

  • 谢谢。我试过了,但我没有完全正确的结果。作为 : " La Commanderie / La nécropole de Noyers Saint Martin / Le Président du Souvenir Polonais en France / Les Auxilaires des Aveugles / MAC GRAVY MICHELE / Ministère Défense Internet / PAF du Val d'Oise / PRO BUSQUEDA DE NINAS I / SPRENE (MIE ) / CADA Nicolas Garnier Forum Réfugié"
  • 您是否检查过您的数据是否正确插入到数据库中?在 CADA Nicolas [...] 的 C 之前可能有一个(隐藏的)字符。
  • 我认为问题已经解决了,非常感谢:-)
【解决方案2】:

查询的 ORDER BY 子句未指定连接的三个表中的“nom_contact”。

【讨论】:

  • 我试过了:structure.nom_contact,我已经得到了相同的结果。
猜你喜欢
  • 1970-01-01
  • 2013-03-01
  • 1970-01-01
  • 2019-04-25
  • 1970-01-01
  • 2013-03-13
  • 1970-01-01
  • 1970-01-01
  • 2011-06-02
相关资源
最近更新 更多