У меня есть таблица, как так ...Mysql - Выберите по крайней мере один или выберите Нет
----------------------------------------
| id | name | group | number |
----------------------------------------
| 1 | joey | 1 | 2 |
| 2 | keidy | 1 | 3 |
| 3 | james | 2 | 2 |
| 4 | steven | 2 | 5 |
| 5 | jason | 3 | 2 |
| 6 | shane | 3 | 3 |
----------------------------------------
Я бегу выбрать так:
SELECT * FROM table WHERE number IN (2,3);
Проблема им пытаются решить заключается в том, что я хочу только получить результаты от групп, имеющих 1 или более строк каждого числа. Например, вышеупомянутый запрос возвращает id 1-2-3-5-6, когда мне хотелось бы, чтобы результаты исключали id 3, так как группа «2» может возвращать только 1 результат для числа «2», а не для BOTH 2 и 3, так как нет строки с номером 3 для группы 2, мне бы хотелось даже не выбрать id 3 вообще.
Любая помощь будет отличной.
Ваш вопрос очень запутан. Можете ли вы отредактировать в списке требований/ограничений, которые вы хотите для запроса, а не в абзаце, который у вас там есть? –
То, что вы хотите, называется реляционным делением. [Эта статья] (https: // www.simple-talk.com/sql/t-sql-programming/divided-we-stand-the-sql-of-relational-division/ «Разделенный мы стоим: SQL Relational Division») был опубликован в разделе о Transact- SQL, но по крайней мере некоторые из методов кодируются в SQL, которые также должны быть скомпилированы в MySQL, и по крайней мере некоторые из них должны быть реализованы в MySQL без каких-либо проблем. –