Есть таблица table
с полями key
и name
.
Ищу строки по значению name
.
Хочу получить также строки в которых key
совпадает с key
из искомых.
Например:
KEY NAME
1 ion
1 mari
2 antuan
3 delatri
4 demetrii
4 alex
5 potstdam
Запрос поиска по со значением alex
выдавал результат:
KEY NAME
4 demetrii
4 alex
Погуглив написал следующее, но выдаёт только 1 поле, без своего "дубля" по ключу:
SELECT `table`.*
FROM `table`
LEFT JOIN
(SELECT `name`, `key`
FROM `table`
GROUP BY `key`, `name`
HAVING COUNT(*)>1) as `tbl`
ON
`table`.`key`=`tbl`.`key` AND
(`tbl`.`name` LIKE '%alex%')
WHERE `tbl`.`key` IS NOT NULL
Вам нужен обычный JOIN с этой же таблицей
select
t2.*
from
test t1
JOIN test t2 ON (
t1.`key` = t2.`key`
)
where
t1.`name` = 'alex'
db-fiddle
Вероятно, ищете такой способ?
select *
from `table`
where name = 'alex'
or `key` = (select `key` from test where name = 'alex')
Пример на db-fiddle.
Есть база данных футбольных матчей с результатамиНапример:
Подскажите пожалуйста как использовать условия в SQL запросе?
Есть таблица с 40+ млн записей, и для быстродействия возникла необходимость ее партицировать по датеПартицирование требует PRIMARY ключ на поле,...
Знаю что есть такая практика, когда некие части CSS кода выносятся в <head>Я так понимаю, что это на случай если файл стилей не загрузится