Size: a a a

2020 December 03

DP

Dmitry Paziy in MySQL
хотя сюда попадут не только option_id = 2 и option_value_id=24, но и option_value_id IN (39,40)
источник

IZ

Ilia Zviagin in MySQL
Ustin_LVO
если у меня есть несколько субзапросов, допустим
(
SELECT product_id
FROM oc_product_option_value
WHERE option_id = 5
AND option_value_id IN (39,40)
)

(
SELECT product_id
FROM oc_product_option_value
WHERE option_id = 2
AND option_value_id IN (24)
)
первый дает 42,42,30,30
второй дает 42
мне надо вывести те product_id, которые есть во всех выдачах (их может быть больше чем 2)
то есть 42
Use join, Luke!
источник

IZ

Ilia Zviagin in MySQL
Ustin_LVO
если у меня есть несколько субзапросов, допустим
(
SELECT product_id
FROM oc_product_option_value
WHERE option_id = 5
AND option_value_id IN (39,40)
)

(
SELECT product_id
FROM oc_product_option_value
WHERE option_id = 2
AND option_value_id IN (24)
)
первый дает 42,42,30,30
второй дает 42
мне надо вывести те product_id, которые есть во всех выдачах (их может быть больше чем 2)
то есть 42
Вообще, надо
Select * from product p
Where exists (

SELECT 1
FROM oc_product_option_value pov
WHERE pov.product_id = p.product_id
and option_id = 5
AND option_value_id IN (39,40)
)
And exists
(
SELECT *
FROM oc_product_option_value pov2
WHERE pov2.product_id = p.product_id
and option_id = 2
AND option_value_id IN (24)
)
источник

IZ

Ilia Zviagin in MySQL
Dmitry Paziy
SELECT product_id
FROM oc_product_option_value
WHERE
(option_id = 5 AND option_value_id IN (39,40))
or
(option_id = 2 AND option_value_id IN (24))
Это говно
источник

ВД

Вадим Дунькин... in MySQL
всем привет, у меня такой будет ли работать оператор BETWEEN в таком формате

date_of_birth BETWEEN CAST('11-30' AS DATE) AND CAST('12-30' AS DATE); ?
то есть нужен запрос без учета или делать лучше такой запрос

DATE_FORMAT(date_of_birth, '%m-%d') >= 11-30 OR DATE_FORMAT(User.date_of_birth, '%m-%d') <= 01-11
источник

ВТ

Виктор Ткаченко... in MySQL
Вадим Дунькин
всем привет, у меня такой будет ли работать оператор BETWEEN в таком формате

date_of_birth BETWEEN CAST('11-30' AS DATE) AND CAST('12-30' AS DATE); ?
то есть нужен запрос без учета или делать лучше такой запрос

DATE_FORMAT(date_of_birth, '%m-%d') >= 11-30 OR DATE_FORMAT(User.date_of_birth, '%m-%d') <= 01-11
Пока писали сообщение, можно было уже проверить, и убедиться, что не будет работать, тк '11-30' это часть даты, а не дата
источник

ВД

Вадим Дунькин... in MySQL
все я понял как делать
источник

IZ

Ilia Zviagin in MySQL
Вадим Дунькин
всем привет, у меня такой будет ли работать оператор BETWEEN в таком формате

date_of_birth BETWEEN CAST('11-30' AS DATE) AND CAST('12-30' AS DATE); ?
то есть нужен запрос без учета или делать лучше такой запрос

DATE_FORMAT(date_of_birth, '%m-%d') >= 11-30 OR DATE_FORMAT(User.date_of_birth, '%m-%d') <= 01-11
Нет, это не хорошо. Тебе надо дату и время начала и конца дня(месяца, года и т.п.) вычислить
источник

ВД

Вадим Дунькин... in MySQL
но если это день рождения? год может быть абсолютно разный
источник

ВД

Вадим Дунькин... in MySQL
а нужна выборка по месяцу и дню
источник

ВД

Вадим Дунькин... in MySQL
типа получить пользователья у который день рождения с 11 ноября до 1 января

так-то просто когда все в одном году, а тут сразу следующий год идет и приходится писать or чтобы дата в входила в диапазон
источник

IZ

Ilia Zviagin in MySQL
Вадим Дунькин
типа получить пользователья у который день рождения с 11 ноября до 1 января

так-то просто когда все в одном году, а тут сразу следующий год идет и приходится писать or чтобы дата в входила в диапазон
Тогда BETWEEN не катит, а нужны DATEPART() и выделять месяц и день.
источник

ГС

Господин Случай... in MySQL
как сделать пересечение по двум таблицам? пробую так, не получается
SELECT A.x,A.y FROM #plots AS A
left join #plots2 AS B ON   A.x = B.x AND A.y = B.y where B.y is NULL AND B.x IS NULL
LEFT JOIN move AS M ON  A.x = M.x AND A.y = M.y where M.y is NULL AND M.x IS NULL;
источник

DE

Denis Efremov in MySQL
Господин Случай
как сделать пересечение по двум таблицам? пробую так, не получается
SELECT A.x,A.y FROM #plots AS A
left join #plots2 AS B ON   A.x = B.x AND A.y = B.y where B.y is NULL AND B.x IS NULL
LEFT JOIN move AS M ON  A.x = M.x AND A.y = M.y where M.y is NULL AND M.x IS NULL;
INNER пробовал?
источник

IZ

Ilia Zviagin in MySQL
Господин Случай
как сделать пересечение по двум таблицам? пробую так, не получается
SELECT A.x,A.y FROM #plots AS A
left join #plots2 AS B ON   A.x = B.x AND A.y = B.y where B.y is NULL AND B.x IS NULL
LEFT JOIN move AS M ON  A.x = M.x AND A.y = M.y where M.y is NULL AND M.x IS NULL;
Use JOIN , Luke!
источник

DE

Denis Efremov in MySQL
Join use))
источник

IZ

Ilia Zviagin in MySQL
Господин Случай
как сделать пересечение по двум таблицам? пробую так, не получается
SELECT A.x,A.y FROM #plots AS A
left join #plots2 AS B ON   A.x = B.x AND A.y = B.y where B.y is NULL AND B.x IS NULL
LEFT JOIN move AS M ON  A.x = M.x AND A.y = M.y where M.y is NULL AND M.x IS NULL;
Может ты ОБЪЕДИНЕНИЕ хотел?
источник

DE

Denis Efremov in MySQL
Ilia Zviagin
Может ты ОБЪЕДИНЕНИЕ хотел?
ООО
источник

ВР

Вячеслав Ракицкий... in MySQL
Ilia Zviagin
а это тут при чём?
По этой логике построены права доступа у меня. Потом я через побитовое и сравниваю права пользователя с правами этой процедуры, если права процедуры не изменились после побитового и , значит такие права входят в права группы
источник

ГС

Господин Случай... in MySQL
Ilia Zviagin
Может ты ОБЪЕДИНЕНИЕ хотел?
Мне нужно из plots удалить все что есть в plots2 и move
источник