powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Не работают запросы в phpMyAdmin
25 сообщений из 29, страница 1 из 2
Не работают запросы в phpMyAdmin
    #39163575
fenix_63
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем привет! Народ, вот такой вопрос, в phpMyAdmin не работает простейший запрос.

Есть таблица:
id name pid (parent_id)1 Раздел_1 02 Раздел_2 03 Раздел_3 04 Раздел_4 05 Подраздел 1.1 16 Подраздел 1.2 17 Подраздел 1.3 18 Подраздел 2.1 29 Подраздел 2.2 210 Подраздел 1.1.1 511 Подраздел 1.1.2 512 Подраздел 1.1.2.1 1113 Подраздел 3.1 314 Подраздел 4.1 415 Подраздел 4.2 4

Мне надо сделать выборку записей без родителей, с тремя и более потомками, ну т.е. те, у которых pid=0, с 3 и более дочерними узлами, а это только запись "Раздел_1", т.к. на него ссылаются Подраздел 1.1, Подраздел 1.2 и Подраздел 1.3.

Пишу запрос в phpMyAdmin:

Код: sql
1.
SELECT name FROM `catalogue` WHERE pid IN (SELECT id FROM catalogue WHERE pid=0) 

Нормально работает, но только частично решает задачу.

Потом пишу например вот такой запрос:
Код: sql
1.
2.
Set @kol=SELECT COUNT(name) FROM catalogue WHERE pid=0;
SELECT @kol;



Не то, что мне требуется, но даже он не работает. Помогите пожалуйста, это я неправильно запрос составил, или phpMyAdmin может как то надо настроить? Всё на хостинге beget.ru лежит
...
Рейтинг: 0 / 0
Не работают запросы в phpMyAdmin
    #39163612
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fenix_63Мне надо сделать выборку записей без родителей, с тремя и более потомками, ну т.е. те, у которых pid=0, с 3 и более дочерними узлами
Ну так и пишите запрос, выполняющий именно эту выборку.
Потребуется 2 копии таблицы.
...
Рейтинг: 0 / 0
Не работают запросы в phpMyAdmin
    #39163665
fenix_63
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Так я не знаю как его составить. Сделал только выборку тех записей, у которых нет родителя:

Код: sql
1.
SELECT id FROM catalogue WHERE pid=0


И отдельно выборку дочерних записей:
Код: sql
1.
SELECT name FROM `catalogue` WHERE pid IN (SELECT id FROM catalogue WHERE pid=0)



мне надо как то подсчитать для каждой записи из 1-й выборки, количество её дочерних, и если больше 3, то вывести эту запись.
Т.е. надо Count как то использовать. Для каждой записи из 1-й выборки свой счётчик завести, как то так, но вот реализовать не могу, не получается. Переменные тоже использовать пробовал, но не работает
...
Рейтинг: 0 / 0
Не работают запросы в phpMyAdmin
    #39163737
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Свяжите две копии таблицы по связи родитель=>потомок.
Отберите только родителей, не имеющих родителей.
Сгруппируйте по родителю и посчитайте потомков.
Оставьте тех, у кого потомков не менее 3.
Типа
Код: sql
1.
2.
3.
4.
5.
SELECT t1.*
FROM table t1, table t2
WHERE table1.pid = 0 AND table2.pid = table1.id
GROUP BY t1.id
HAVING COUNT([DISTINCT] t2.id) >= 3
...
Рейтинг: 0 / 0
Не работают запросы в phpMyAdmin
    #39163841
fenix_63
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А как сделать копию таблицы? Пробую сделать копию через переменную, но phpMyAdmin выдаёт ошибку:

Код: sql
1.
2.
SET @table1=SELECT * FROM catalogue WHERE pid=0
SELECT @table



авторStatic analysis:

2 errors were found during analysis.

A new statement was found, but no delimiter between it and the previous one. (near "SELECT" at position 12)
This type of clause was previously parsed. (near "SELECT" at position 49)

Как быть?
...
Рейтинг: 0 / 0
Не работают запросы в phpMyAdmin
    #39163891
tanglir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fenix_63А как сделать копию таблицы?во-первых, зачем?
а во-вторых, create table + insert into ... select from
...
Рейтинг: 0 / 0
Не работают запросы в phpMyAdmin
    #39163923
fenix_63
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ну это я отвечал на пост Akina . Сейчас попробую с Create Table. Просто думал может можно как то в переменную засунуть все данные из копируемой таблицы, не создавая её
...
Рейтинг: 0 / 0
Не работают запросы в phpMyAdmin
    #39163939
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fenix_63Сейчас попробую с Create Table. Просто думал может можно как то в переменную засунуть все данные из копируемой таблицы, не создавая еёНе надо создавать физическую копию. Нужна всего лишь логическая копия (т.е. та же таблица под другим именем), как создавать которую Akina уже показал - 18776672 .
...
Рейтинг: 0 / 0
Не работают запросы в phpMyAdmin
    #39163963
fenix_63
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Пробовал я этот запрос делать - ну не работает он, ошибки выдаёт:

авторStatic analysis:

8 errors were found during analysis.

Unexpected character. (near "[" at position 116)
Unexpected character. (near "]" at position 125)
An expression was expected. (near "table" at position 18)
Unrecognized keyword. (near "table" at position 18)
Unexpected token. (near "t1" at position 24)
Unexpected token. (near "," at position 26)
Unrecognized keyword. (near "table" at position 28)
Unexpected token. (near "t2" at position 34)
...
Рейтинг: 0 / 0
Не работают запросы в phpMyAdmin
    #39164013
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fenix_63как сделать копию таблицы?
Где я писал слово "сделать"???

fenix_63ошибки выдаёт
MySQL не выдаёт ТАКИЕ сообщения об ошибках. Это первое.
И второе - если тебе ответили, это не значит, что надо отключить мозг и тупо копипастить.
...
Рейтинг: 0 / 0
Не работают запросы в phpMyAdmin
    #39164054
fenix_63
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Что к словам то цепляться? Связать копии надо JOIN'ами, но мне эти самые копии то как то получить сначала надо, вот я тут и спрашивал
...
Рейтинг: 0 / 0
Не работают запросы в phpMyAdmin
    #39164068
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fenix_63Связать копии надо JOIN'ами
Вот потому и цепляться! Это же надо быть дважды слепым, чтобы не увидеть в строке
Код: sql
1.
FROM table t1, table t2


двух копий таблицы!
...
Рейтинг: 0 / 0
Не работают запросы в phpMyAdmin
    #39164095
fenix_63
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ок, может и не заметил, так я ж не профи. Как тогда от этих багов избавиться, кроме квадратных скобок у DISTINCT ( https://fotki.yandex.ru/next/users/tltfenix/album/74102/view/992210 )? Это мне phpMyAdmin выдал. Да, сейчас тупо скопировал.
...
Рейтинг: 0 / 0
Не работают запросы в phpMyAdmin
    #39164105
Фотография Alex_Ustinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
таблицу `table` называть не надо, или возьмите ее в апострофы

Akina привел для примера
...
Рейтинг: 0 / 0
Не работают запросы в phpMyAdmin
    #39164108
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну, во-первых, неплохо бы заменить слово table на имя своей таблицы. На всякий случай уточню - это нужно проделать тоже в двух экземплярах.
Во-вторых, квадратные скобке в MySQL-коде всегда обозначают компонент, который должен либо включаться, либо нет, в зависимости от требуемой логики. С обязательным удалением этих скобок, само собой. Вот и подумай, требует ли ТВОЯ логика наличия DISTINCT или нет.
Ну и алиасы поменяй, чтобы они везде были одни и те же.
...
Рейтинг: 0 / 0
Не работают запросы в phpMyAdmin
    #39164112
Фотография Alex_Ustinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alex_Ustinov,

и не чудите... вы дали алиасы t1 t2
В дальнейшем обращаетесь по псевдонимам.... t1.poleN t2.poleM ... (откуда у вас table1 table2 на картинке?)
...
Рейтинг: 0 / 0
Не работают запросы в phpMyAdmin
    #39164120
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alex_Ustinovоткуда у вас table1 table2 на картинке?
Я так написАл от руки. А он тупо скопипастил, не пытаясь понять сути происходящего. За что, собственно, и был грубо обруган.
...
Рейтинг: 0 / 0
Не работают запросы в phpMyAdmin
    #39164150
fenix_63
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Фантастика, работает, спасибо народ огромное.
Рабочий код:

Код: sql
1.
SELECT t1.* FROM catalogue t1, catalogue t2 WHERE t1.pid = 0 AND t2.pid = t1.id GROUP BY t1.id HAVING COUNT( t2.id) >= 3



DISTINCT убрал, т.к. допускаются повторения

P.S. не злитесь народ что туплю, ну бывают случаи что ну никак не доходит, хоть часами гугли и примеры смотри

P.P.S. Оставьте пожалуйста тему открытой.
...
Рейтинг: 0 / 0
Не работают запросы в phpMyAdmin
    #39165547
fenix_63
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Народ, ещё есть вопрос: Как сделать выборку записей без потомков, но с 2-мя старшими родителями?

Есть вот что:
Код: sql
1.
SELECT t2.* FROM catalogue t1, catalogue t2 WHERE t1.pid!=0 AND t2.pid!=0 AND t2.pid=t1.id



Но такой запрос выдаёт лишнюю запись Подраздел 1.1.2.1 ((
...
Рейтинг: 0 / 0
Не работают запросы в phpMyAdmin
    #39165561
Фотография Alex_Ustinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Akina,

я это понял... вопрос был к ТС...
...
Рейтинг: 0 / 0
Не работают запросы в phpMyAdmin
    #39165680
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fenix_63такой запрос выдаёт лишнюю запись Подраздел 1.1.2.1 ((Это почему же она - лишняя?

fenix_63
Код: sql
1.
t2.pid!=0 AND t2.pid=t1.id

Приглядитесь к этой паре условий повнимательнее...

fenix_63сделать выборку записей без потомков, но с 2-мя старшими родителями
Слабопонятная формулировка, на самом деле...
...
Рейтинг: 0 / 0
Не работают запросы в phpMyAdmin
    #39166188
tanglir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Akinafenix_63сделать выборку записей без потомков, но с 2-мя старшими родителями
Слабопонятная формулировка, на самом деле...Да что там непонятного, ему нужны все потомки второго уровня (внуки то есть).
...скорее всего :)
...
Рейтинг: 0 / 0
Не работают запросы в phpMyAdmin
    #39166205
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tanglirему нужны все потомки второго уровня
Возможно... а, может, и "не менее чем второго". У потомка третьего уровня вполне себе имеется "2 старших родителя", и нигде не сказано, что их должно быть строго два, а не больше. Так что сначала надо заставить ТС самого понять, что же ему на самом деле надо, и заставить это правильно сформулировать.
...
Рейтинг: 0 / 0
Не работают запросы в phpMyAdmin
    #39166637
fenix_63
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Нужны записи без потомков, но с 2-мя старшими родителями.

Т.е. нужны записи, НА КОТОРЫЕ нет ссылок, и у которых как минимум есть 2 родителя - т.е. условно "отец", и "дед". "Прадеды" и "Пра-прадеды" даже если они и есть - их выводить не нужно.

Akina , да, я сейчас по-внимательнее условие почитал - точно, запрос то мой верный ))

https://fotki.yandex.ru/next/users/tltfenix/album/74102/view/992336
...
Рейтинг: 0 / 0
Не работают запросы в phpMyAdmin
    #39166680
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fenix_63нужны записи, НА КОТОРЫЕ нет ссылок, и у которых как минимум есть 2 родителя - т.е. условно "отец", и "дед". "Прадеды" и "Пра-прадеды" даже если они и есть - их выводить не нужно.
А теперь в свете этой информации растолкуйте, почему
fenix_63запись Подраздел 1.1.2.1
названа лишней?
...
Рейтинг: 0 / 0
25 сообщений из 29, страница 1 из 2
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Не работают запросы в phpMyAdmin
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]