|
|
|
| Есть MySQL-таблица:
CREATE TABLE `test` (
`number_1` int(11) NOT NULL default '0',
`number_2` int(11) NOT NULL default '0',
PRIMARY KEY (`number_1`,`number_2`)
) ENGINE=MyISAM DEFAULT CHARSET=cp1251;
INSERT INTO `test` (`number_1`, `number_2`) VALUES (0, 0);
(0, 1),
(0, 4),
(0, 7),
(1, 0),
(1, 3),
(2, 8),
(3, 1),
(4, 9),
(5, 8),
(5, 12),
(8, 8),
(9, 0);
Необходимо одним SQL-запросом выбрать с этой таблицы все возможные комбинации number_1 и number_2, при которых они равны друг другу, отсортировав результат по обоим полям. Этот запрос должен возвращать следующий результат:
number_1 number_2
0 0
0 0
0 0
0 0
0 0
0 0
0 0
0 0
0 0
0 0
0 0
0 0
1 1
1 1
1 1
1 1
3 3
4 4
8 8
8 8
8 8
9 9
это обобщённый вопрос. знатоки, подскажите как решить эту задачу.
заранее благодарна | |
|
|
|
|
|
|
|
для: Devona
(05.02.2007 в 16:34)
| | Что-то я не понял условие задачи.
Почему у вас в результатах столько нулей? | |
|
|
|
|
|
|
|
для: Loki
(05.02.2007 в 17:13)
| | нужно выбрать все возможные комбинации number_1 и number_2, при которых они равны друг другу | |
|
|
|
|
|
|
|
для: Devona
(05.02.2007 в 17:20)
| | number_1 содержит 4 нуля, number_2 - 2 нуля. количество комбинаций - 4*2=8... у вас не то 10, не то 12... потому мне и не понятно. | |
|
|
|
|
|
|
|
для: Loki
(05.02.2007 в 17:27)
| | возможно промахнулась с количеством при написании примера вывода ответа
но суть в принципе понятна я думаю | |
|
|
|
|
|
|
|
для: Devona
(05.02.2007 в 17:32)
| |
SELECT t1.number_1, t2.number_2 FROM test t1 LEFT JOIN test t2 ON t1.number_1=t2.number_2 WHERE t2.number_2 IS NOT NULL ORDER BY t1.number_1
|
Прошу прощения. один нолик я у вас проглядел:) | |
|
|
|
|
|
|
|
для: Loki
(05.02.2007 в 17:43)
| | спасибо за ответ.
в принципе я так и хотела. только не догадалась использовать 2 псевдонима для одной таблицы. | |
|
|
|
|
|
|
|
для: Devona
(05.02.2007 в 17:54)
| | Можно проще:
SELECT t1.number_1, t2.number_2 FROM test t1 JOIN test t2 ON t1.number_1=t2.number_2 ORDER BY t1.number_1
|
| |
|
|
|
|
|
|
|
для: Trianon
(05.02.2007 в 19:23)
| | был уверен что где-то перемудрил:) | |
|
|
|
|
|
|
|
для: Devona
(05.02.2007 в 16:34)
| |
SELECT * FROM `test` WHERE number_1 = number_2
|
| |
|
|
|
|
|
|
|
для: Gluck
(05.02.2007 в 17:39)
| | это слишком просто. и не все варианты выводит.
получаем только 0-0 и 8-8 | |
|
|
|
|
|
|
|
для: Devona
(05.02.2007 в 17:47)
| | Так там только записи 0 и 8 равны между собой... Или я нее понял задания... | |
|
|
|