Size: a a a

pgsql – PostgreSQL

2021 June 28

b

batyrmastyr in pgsql – PostgreSQL
Только если у вас ДВЕ записи для одной game_id, в одной записи prop_id = 5, в другой - 6.
источник

D

Dmitriy in pgsql – PostgreSQL
да, верно
источник

D

Dmitriy in pgsql – PostgreSQL
я имел ввиду что для одной game_id есть несколько prop_id
источник

DO

Do c Tor O r` Ry in pgsql – PostgreSQL
нативный Number в js - это 64bit floating point.
32 целые числа полностью можно выразить через 64bit floating point, а вот 64 битные целые нельзя. Поэтому драйвер отдает строку, а не число, потому что язык это не поддерживает.
https://developer.mozilla.org/ru/docs/Web/JavaScript/Reference/Global_Objects/BigInt вот тут можно инфу почитать. Даже BigInt не поможет, потому что язык корявый
источник

b

batyrmastyr in pgsql – PostgreSQL
"catalog_gameproperty".prop_id = 6 OR "catalog_gameproperty".prop_id = 5
HAVING count(*) >= 2
Хотя бы так.
источник

D

Dmitriy in pgsql – PostgreSQL
да тут неважно что count больше двух. смысл в том чтобы вывести записи у которых prop_id 5 и prop_id 6
источник

VB

Vladimir Bezgodov in pgsql – PostgreSQL
AND на OR поменяй, и всё верно будет
источник

МК

Михаил Ковальчук... in pgsql – PostgreSQL
да да, нашел тоже что-то подобное, о чем вы говорите... спасибо
источник

D

Dmitriy in pgsql – PostgreSQL
ну как верно то? выведет все записи у которых 5 или 6, а мне надо 5 и 6
источник

ГР

Геннадий Романов... in pgsql – PostgreSQL
Как вынести повторящийся код из запроса
With работает с подзапросами,
просто код она не выносит насколько я понял
источник

VB

Vladimir Bezgodov in pgsql – PostgreSQL
Аааа, всё понял
источник

DG

Denis Girko ☕️ in pgsql – PostgreSQL
Держи еще вариант:


SELECT
   "catalog_game"."id",
   "catalog_game"."name"
FROM "catalog_game"
   JOIN "catalog_gameproperty" ON ("catalog_game"."id" = "catalog_gameproperty"."game_id" AND "catalog_gameproperty".prop_id = 5)
   JOIN "catalog_gameproperty" gp2 ON ("catalog_game"."id" = gp2."game_id" AND gp2.prop_id = 6)
;
источник

D

Dmitriy in pgsql – PostgreSQL
а так оно вообще не заведется
источник

DG

Denis Girko ☕️ in pgsql – PostgreSQL
Ну я поправил
источник

DG

Denis Girko ☕️ in pgsql – PostgreSQL
Но ты тоже подключайся, я же не могу проверить корректность запросов.
источник

D

Dmitriy in pgsql – PostgreSQL
ну всеравно два джойна одно таблицы не прокатит
источник

VB

Vladimir Bezgodov in pgsql – PostgreSQL
SELECT "catalog_game"."id",
      "catalog_game"."name"
FROM "catalog_game"
        INNER JOIN "catalog_gameproperty" ON ("catalog_game"."id" = "catalog_gameproperty"."game_id")
WHERE "catalog_gameproperty".prop_id = 6 AND "catalog_gameproperty".prop_id = 5

у тебя нет в строке, чтобы было prop_id=5 и prop_id=6. У тебя это две отдельные записи
источник

DG

Denis Girko ☕️ in pgsql – PostgreSQL
Почему?
источник

D

Dmitriy in pgsql – PostgreSQL
ну вот как то так
источник

VB

Vladimir Bezgodov in pgsql – PostgreSQL
ну элиас задай для первого использования таблицы
источник