HackerFriction Feedback

Products · Broad category

SQL

Raised as a usability problem by 188 people on Hacker News over 19 years (2008–2026), in 160 threads.

This is a broad category rather than one product, so its issues aren't ranked on the home page.

Ranked by people · period

No issue was raised by at least 3 people in 3 threads this year.

  1. 1
    Complex SQL queries are very unintuitive to write by handUnreviewed

    8 people in the last 5 years · 5 threads

  2. 2
    SELECT first means autocomplete has no table info for columnsUnreviewed

    6 people in the last 5 years · 6 threads

  3. 3
    Written clause order doesn't match execution orderUnreviewed

    6 people in the last 5 years · 6 threads

  4. 4
    Error messages from SQL databases are poor and unhelpfulUnreviewed

    5 people in the last 5 years · 5 threads

  5. 5
    Trailing commas cause syntax errors and leading commas feel unintuitiveUnreviewed

    4 people in the last 5 years · 4 threads

  6. 6
    Nested subqueries are syntactically ugly and confusingUnreviewed

    4 people in the last 5 years · 4 threads

  7. 7
    Optimizer picks a poor plan and users can't steer itUnreviewed

    3 people in the last 5 years · 3 threads

  8. 8
    NULL behaves unintuitively and surprises query writersUnreviewed

    3 people in the last 5 years · 3 threads

  9. 9
    Tooling layers must be learned by beginners before queries workUnreviewed

    3 people in the last 5 years · 3 threads

  10. 10
    Complex queries silently duplicate rows, hard to reason aboutUnreviewed

    3 people in the last 5 years · 3 threads

  11. 11
    Hard to compose because of its human-readable syntaxUnreviewed

    3 people in the last 5 years · 3 threads

  1. 1
    Complex SQL queries are very unintuitive to write by handUnreviewed

    27 people since the beginning · 21 threads

  2. 2
    Written clause order doesn't match execution orderUnreviewed

    11 people since the beginning · 11 threads

  3. 3
    SELECT first means autocomplete has no table info for columnsUnreviewed

    9 people since the beginning · 9 threads

  4. 4
    Optimizer picks a poor plan and users can't steer itUnreviewed

    9 people since the beginning · 9 threads

  5. 5
    Error messages from SQL databases are poor and unhelpfulUnreviewed

    8 people since the beginning · 8 threads

  6. 6
    Trailing commas cause syntax errors and leading commas feel unintuitiveUnreviewed

    7 people since the beginning · 7 threads

  7. 7
    NULL behaves unintuitively and surprises query writersUnreviewed

    7 people since the beginning · 7 threads

  8. 8
    Nested subqueries are syntactically ugly and confusingUnreviewed

    6 people since the beginning · 6 threads

  9. 9
    Joins make performance hard to reason aboutUnreviewed

    5 people since the beginning · 5 threads

  10. 10
    Tooling layers must be learned by beginners before queries workUnreviewed

    5 people since the beginning · 5 threads

  11. 11
    Graph and tree data become huge, incomprehensible query hacksUnreviewed

    4 people since the beginning · 4 threads

  12. 12
    Declarative abstraction hides performance, forcing contortions and profilingUnreviewed

    4 people since the beginning · 4 threads

  13. 13
    Complex queries silently duplicate rows, hard to reason aboutUnreviewed

    4 people since the beginning · 4 threads

  14. 14
    SET before WHERE makes people fear running updates without WHEREUnreviewed

    4 people since the beginning · 3 threads

  15. 15
    One clause per line makes the query harder to readUnreviewed

    4 people since the beginning · 4 threads

  16. 16
    Easy to forget table relations in multi-table queriesUnreviewed

    3 people since the beginning · 3 threads

  17. 17
    Hard to compose because of its human-readable syntaxUnreviewed

    3 people since the beginning · 3 threads

  18. 18
    Writing SQL queries takes an hour for logic code does in minutesUnreviewed

    3 people since the beginning · 3 threads

  19. 19
    Hard to reason about and generate dynamic search queriesUnreviewed

    3 people since the beginning · 3 threads

  20. 20
    Selecting all but one column means listing every other columnUnreviewed

    3 people since the beginning · 3 threads

Every issue, all time, most people first

  1. Complex SQL queries are very unintuitive to write by handUnreviewed

    27 people since 2008, in 11 different years · 3 this year

    2008: 1 person2009: 1 person2010: 1 person2011: 0 people2012: 0 people2013: 0 people2014: 1 person2015: 0 people2016: 0 people2017: 3 people2018: 0 people2019: 4 people2020: 4 people2021: 5 people2022: 2 people2023: 3 people2024: 0 people2025: 0 people2026: 3 people
    20082026
    Something wrong here?
  2. Written clause order doesn't match execution orderUnreviewed

    11 people since 2012, in 7 different years · none this year

    2008: 0 people2009: 0 people2010: 0 people2011: 0 people2012: 1 person2013: 0 people2014: 0 people2015: 0 people2016: 1 person2017: 0 people2018: 2 people2019: 0 people2020: 2 people2021: 0 people2022: 2 people2023: 2 people2024: 2 people2025: 0 people2026: 0 people
    20082026
    Something wrong here?
  3. SELECT first means autocomplete has no table info for columnsUnreviewed

    9 people since 2014, in 8 different years · 1 this year

    2008: 0 people2009: 0 people2010: 0 people2011: 0 people2012: 0 people2013: 0 people2014: 1 person2015: 0 people2016: 0 people2017: 0 people2018: 0 people2019: 0 people2020: 1 person2021: 1 person2022: 2 people2023: 2 people2024: 1 person2025: 1 person2026: 1 person
    20082026
    Something wrong here?
  4. Optimizer picks a poor plan and users can't steer itUnreviewed

    9 people since 2015, in 6 different years · none this year

    2008: 0 people2009: 0 people2010: 0 people2011: 0 people2012: 0 people2013: 0 people2014: 0 people2015: 2 people2016: 0 people2017: 0 people2018: 1 person2019: 1 person2020: 2 people2021: 0 people2022: 0 people2023: 2 people2024: 0 people2025: 1 person2026: 0 people
    20082026
    Something wrong here?
  5. Error messages from SQL databases are poor and unhelpfulUnreviewed

    8 people since 2010, in 5 different years · 2 this year

    2008: 0 people2009: 0 people2010: 1 person2011: 0 people2012: 0 people2013: 0 people2014: 0 people2015: 0 people2016: 0 people2017: 0 people2018: 0 people2019: 3 people2020: 0 people2021: 0 people2022: 1 person2023: 0 people2024: 3 people2025: 0 people2026: 2 people
    20082026
    Something wrong here?
  6. Trailing commas cause syntax errors and leading commas feel unintuitiveUnreviewed

    7 people since 2016, in 6 different years · none this year

    2008: 0 people2009: 0 people2010: 0 people2011: 0 people2012: 0 people2013: 0 people2014: 0 people2015: 0 people2016: 1 person2017: 0 people2018: 0 people2019: 0 people2020: 1 person2021: 1 person2022: 1 person2023: 0 people2024: 1 person2025: 2 people2026: 0 people
    20082026
    Something wrong here?
  7. NULL behaves unintuitively and surprises query writersUnreviewed

    7 people since 2016, in 5 different years · none this year

    2008: 0 people2009: 0 people2010: 0 people2011: 0 people2012: 0 people2013: 0 people2014: 0 people2015: 0 people2016: 1 person2017: 0 people2018: 0 people2019: 1 person2020: 2 people2021: 0 people2022: 2 people2023: 1 person2024: 0 people2025: 0 people2026: 0 people
    20082026
    Something wrong here?
  8. Nested subqueries are syntactically ugly and confusingUnreviewed

    6 people since 2018, in 5 different years · none this year

    2008: 0 people2009: 0 people2010: 0 people2011: 0 people2012: 0 people2013: 0 people2014: 0 people2015: 0 people2016: 0 people2017: 0 people2018: 1 person2019: 1 person2020: 0 people2021: 0 people2022: 0 people2023: 1 person2024: 2 people2025: 1 person2026: 0 people
    20082026
    Something wrong here?
  9. Joins make performance hard to reason aboutUnreviewed

    5 people since 2009, in 5 different years · none this year

    2008: 0 people2009: 1 person2010: 1 person2011: 0 people2012: 0 people2013: 0 people2014: 0 people2015: 0 people2016: 0 people2017: 0 people2018: 0 people2019: 0 people2020: 0 people2021: 1 person2022: 1 person2023: 0 people2024: 0 people2025: 1 person2026: 0 people
    20082026
    Something wrong here?
  10. Tooling layers must be learned by beginners before queries workUnreviewed

    5 people since 2020, in 4 different years · none this year

    2008: 0 people2009: 0 people2010: 0 people2011: 0 people2012: 0 people2013: 0 people2014: 0 people2015: 0 people2016: 0 people2017: 0 people2018: 0 people2019: 0 people2020: 1 person2021: 1 person2022: 0 people2023: 1 person2024: 2 people2025: 0 people2026: 0 people
    20082026
    Something wrong here?
  11. Graph and tree data become huge, incomprehensible query hacksUnreviewed

    4 people since 2016, in 3 different years · none this year

    2008: 0 people2009: 0 people2010: 0 people2011: 0 people2012: 0 people2013: 0 people2014: 0 people2015: 0 people2016: 1 person2017: 0 people2018: 0 people2019: 0 people2020: 0 people2021: 2 people2022: 1 person2023: 0 people2024: 0 people2025: 0 people2026: 0 people
    20082026
    Something wrong here?
  12. Declarative abstraction hides performance, forcing contortions and profilingUnreviewed

    4 people since 2011, in 3 different years · none this year

    2008: 0 people2009: 0 people2010: 0 people2011: 1 person2012: 0 people2013: 0 people2014: 0 people2015: 0 people2016: 0 people2017: 0 people2018: 0 people2019: 1 person2020: 2 people2021: 0 people2022: 0 people2023: 0 people2024: 0 people2025: 0 people2026: 0 people
    20082026
    Something wrong here?
  13. Complex queries silently duplicate rows, hard to reason aboutUnreviewed

    4 people since 2020, in 3 different years · none this year

    2008: 0 people2009: 0 people2010: 0 people2011: 0 people2012: 0 people2013: 0 people2014: 0 people2015: 0 people2016: 0 people2017: 0 people2018: 0 people2019: 0 people2020: 1 person2021: 0 people2022: 1 person2023: 2 people2024: 0 people2025: 0 people2026: 0 people
    20082026
    Something wrong here?
  14. SET before WHERE makes people fear running updates without WHEREUnreviewed

    4 people since 2016, in 3 different years · none this year

    2008: 0 people2009: 0 people2010: 0 people2011: 0 people2012: 0 people2013: 0 people2014: 0 people2015: 0 people2016: 1 person2017: 0 people2018: 0 people2019: 0 people2020: 0 people2021: 2 people2022: 0 people2023: 0 people2024: 1 person2025: 0 people2026: 0 people
    20082026
    Something wrong here?
  15. One clause per line makes the query harder to readUnreviewed

    4 people since 2019, in 2 different years · none this year

    2008: 0 people2009: 0 people2010: 0 people2011: 0 people2012: 0 people2013: 0 people2014: 0 people2015: 0 people2016: 0 people2017: 0 people2018: 0 people2019: 3 people2020: 0 people2021: 0 people2022: 0 people2023: 1 person2024: 0 people2025: 0 people2026: 0 people
    20082026
    Something wrong here?
  16. Easy to forget table relations in multi-table queriesUnreviewed

    3 people since 2013, in 3 different years · none this year

    2008: 0 people2009: 0 people2010: 0 people2011: 0 people2012: 0 people2013: 1 person2014: 0 people2015: 0 people2016: 0 people2017: 0 people2018: 0 people2019: 1 person2020: 0 people2021: 0 people2022: 0 people2023: 0 people2024: 1 person2025: 0 people2026: 0 people
    20082026
    Something wrong here?
  17. Hard to compose because of its human-readable syntaxUnreviewed

    3 people since 2023, in 3 different years · 1 this year

    2008: 0 people2009: 0 people2010: 0 people2011: 0 people2012: 0 people2013: 0 people2014: 0 people2015: 0 people2016: 0 people2017: 0 people2018: 0 people2019: 0 people2020: 0 people2021: 0 people2022: 0 people2023: 1 person2024: 1 person2025: 0 people2026: 1 person
    20082026
    Something wrong here?
  18. Writing SQL queries takes an hour for logic code does in minutesUnreviewed

    3 people since 2015, in 3 different years · none this year

    2008: 0 people2009: 0 people2010: 0 people2011: 0 people2012: 0 people2013: 0 people2014: 0 people2015: 1 person2016: 0 people2017: 0 people2018: 1 person2019: 0 people2020: 1 person2021: 0 people2022: 0 people2023: 0 people2024: 0 people2025: 0 people2026: 0 people
    20082026
    Something wrong here?
  19. Hard to reason about and generate dynamic search queriesUnreviewed

    3 people since 2014, in 2 different years · none this year

    2008: 0 people2009: 0 people2010: 0 people2011: 0 people2012: 0 people2013: 0 people2014: 2 people2015: 0 people2016: 0 people2017: 0 people2018: 0 people2019: 0 people2020: 0 people2021: 0 people2022: 0 people2023: 0 people2024: 1 person2025: 0 people2026: 0 people
    20082026
    Something wrong here?
  20. Selecting all but one column means listing every other columnUnreviewed

    3 people since 2014, in 2 different years · none this year

    2008: 0 people2009: 0 people2010: 0 people2011: 0 people2012: 0 people2013: 0 people2014: 1 person2015: 0 people2016: 0 people2017: 0 people2018: 0 people2019: 0 people2020: 0 people2021: 0 people2022: 2 people2023: 0 people2024: 0 people2025: 0 people2026: 0 people
    20082026
    Something wrong here?

This list counts all time; the period switch above only changes the ranking. Each issue is a group of similar complaints raised by at least 3 people in 3 different months and threads. Each line under an issue is Claude Haiku's summary of one of its latest comments, not a quote; follow it to read the comment on Hacker News.

Unreviewed issues were grouped by machine: Claude Haiku labelled each comment as a usability complaint, named what it's about and summed up the problem in a line, and a small model grouped similar problems. Nobody has checked them by hand. Expect mistakes.

The newest 50 complaints