Guest111
Guest
Помогите написать вложенный MySQL запрос...
В общем имеется 2 таблицы:
first_table
second_table
В первой хранится структура категорий:
Во второй (second_table) хранятся имена этих категорий:
Как написать запрос, который бы возвращал p_id, name из второй таблицы, предварительно взяв все p_parent = 0 из первой?
Т.е. алгорит здесь такой:
1. Берём все p_parent равные "0"
2. В соответствии каждому p_parent поставлено p_child => это p_id который нужно взять из второй таблицы
3. Вывести p_id, name второй таблицы
Как это можно сделать?
Я пробовал что-то вроде:
Только ошибку возвращает:
Я-то понимаю что она значит, но как разрешить её не знаю. Предполагаю, что дополнительным условием это решается, но где и как??
Заранее спасибо.
-~{}~ 01.12.05 09:31:
Хм, похоже я справился..
скажите, насколько этот запрос корректен? можно ли его как-то оптимизировать?
В общем имеется 2 таблицы:
first_table
second_table
В первой хранится структура категорий:
Код:
p_parent | p_child
0 | 1
0 | 2
0 | 3
1 | 4
2 | 5
Код:
p_id | name
1 | nm1
2 | nm2
3 | nm3
Т.е. алгорит здесь такой:
1. Берём все p_parent равные "0"
2. В соответствии каждому p_parent поставлено p_child => это p_id который нужно взять из второй таблицы
3. Вывести p_id, name второй таблицы
Как это можно сделать?
Я пробовал что-то вроде:
Код:
SELECT p_id, p_name FROM second_table A WHERE A.p_id = ( SELECT p_child FROM first_table B WHERE B.p_parent = '0' )
Код:
Subquery returns more than 1 row
Заранее спасибо.
-~{}~ 01.12.05 09:31:
Хм, похоже я справился..
Код:
SELECT p_id, p_name FROM second_table A WHERE A.p_id = ( SELECT p_child FROM first_table B WHERE B.p_child = A.p_id AND B.p_parent = '0' )