|
|
|
| Помогите сделать выборку всех статей для родителя
есть две таблицы
САТ
id_cat sub_cat name
1 0 мясо
2 1 копченое мясо
3 1 соленое мясо
4 1 тухлое мясо
5 0 рыба
6 0 грибы
|
и таблица статей
DATA
id cat name
1 2 статья 1 про копченое мясо
2 2 статья 2 про копченое мясо
3 2 статья 3 про копченое мясо
4 3 статья 1 про соленое мясо
5 3 статья 2 про соленое мясо
6 4 статья 1 про тухлое мясо
|
передаю гетом id_cat и sub_cat из САТ
как выбрать все статьи из DATA относящиеся к мясу ??? ...
Заранее спасибо за помощь | |
|
|
|
|
|
|
|
для: serjinio
(02.07.2008 в 16:40)
| | таблица CAT у вас не содержит ссылки на родителя, это не совсем корректно. или у вас sub_cat может относиться только к мясу, и ни к чему больше? т.е.тухлой рыбы не бывает? | |
|
|
|
|
|
|
|
для: GeorgeIV
(02.07.2008 в 17:03)
| | sub_cat вроде бы и есть ссылка на родителя, просто название такое. | |
|
|
|
|
|
|
|
для: Эй
(02.07.2008 в 17:11)
| | понял, не сразу врубился, действительно это ID родителя.. | |
|
|
|
|
|
|
|
для: GeorgeIV
(02.07.2008 в 17:42)
| | да ,sub_cat это ссылка на родителя ..сейчас прийду домой попробую ..спасибо за помощь
sub_cat это типа parent_id | |
|
|
|
|
|
|
|
для: serjinio
(02.07.2008 в 18:44)
| | тогда это не sub_cat, а super_cat.
Всё ж спутать подкатегрию и надкатегорию, это примерно как спутать маму и дочку. | |
|
|
|
|
|
|
|
для: Trianon
(02.07.2008 в 18:55)
| | Ну если мама очень молода...не грех и спутать:) | |
|
|
|
|
|
|
|
для: serjinio
(02.07.2008 в 16:40)
| |
SELECT * FROM `DATA` WHERE `cat` IN (SELECT `id_cat` FROM `САТ` WHERE `sub_cat`=1)
|
или
SELECT * FROM `DATA` LEFT JOIN `САТ` ON `DATA`.`cat`=`САТ`.`id_cat` WHERE `САТ`.`sub_cat`=1
|
| |
|
|
|
|
|
|
|
для: Эй
(02.07.2008 в 17:11)
| |
SELECT * FROM `DATA` LEFT JOIN `САТ` ON `DATA`.`cat`=`САТ`.`id_cat` WHERE `САТ`.`sub_cat`=1
|
отлично заработало,а
SELECT * FROM `DATA` WHERE `cat` IN (SELECT `id_cat` FROM `САТ` WHERE `sub_cat`=1)
| выдает ошибку
И можно еще нескромный вопрос, что означает данный синтаксис
ON `DATA`.`cat`=`САТ`.`id_cat`
| в частности точка....для чего это надо...хочу разобраться ...заранее спасибо ... | |
|
|
|
|
|
|
|
для: serjinio
(02.07.2008 в 23:54)
| | > выдает ошибку
Какую ошибку?
Точка используется для обращения к полю конкретной таблицы:
`имя таблицы`.`имя поля`
Такой синтаксис чаще используют, чтобы не запутаться в именах полей, когда в одном запросе учавствуют несколько таблиц. | |
|
|
|
|
|
|
|
для: Эй
(03.07.2008 в 00:19)
| | Была пауза на работе...не успел поблагодарить ...Спасибо за помощь | |
|
|
|