Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737 Форумы портала PHP.SU :: Сравнение столбца в одной и той же таблице
Покинул форум
Сообщений всего: 5025
Дата рег-ции: Нояб. 2012 Откуда: Украина, Львов
Помог: 127 раз(а)
Sail
там же одна таблица. я так понял это дерево. и автор топика ищет строкы в которых совпадает два поля
Sail
Отправлено: 17 Ноября, 2014 - 15:53:33
Участник
Покинул форум
Сообщений всего: 1131
Дата рег-ции: Февр. 2014
Помог: 57 раз(а)
esterio пишет:
Sail
там же одна таблица. я так понял это дерево. и автор топика ищет строкы в которых совпадает два поля
Да, таблица одна
Но стрелочка-то к другой строчке на скриншоте...
ketovpavel
Отправлено: 17 Ноября, 2014 - 16:03:32
Новичок
Покинул форум
Сообщений всего: 11
Дата рег-ции: Нояб. 2014
Помог: 0 раз(а)
Да Ваш вариант то же работает спасибо!
Sail пишет:
esterio пишет:
Sail
там же одна таблица. я так понял это дерево. и автор топика ищет строкы в которых совпадает два поля
Да, таблица одна
Но стрелочка-то к другой строчке на скриншоте...
Не ожидал, что вариантов будет несколько
esterio
Отправлено: 17 Ноября, 2014 - 16:10:05
Активный участник
Покинул форум
Сообщений всего: 5025
Дата рег-ции: Нояб. 2012 Откуда: Украина, Львов
Помог: 127 раз(а)
Sail пишет:
Но стрелочка-то к другой строчке на скриншоте...
просто в таком случае не надо ничего джойнить. достаточно просто сравнения
Sail
Отправлено: 17 Ноября, 2014 - 16:25:52
Участник
Покинул форум
Сообщений всего: 1131
Дата рег-ции: Февр. 2014
Помог: 57 раз(а)
esterio пишет:
Sail пишет:
Но стрелочка-то к другой строчке на скриншоте...
просто в таком случае не надо ничего джойнить. достаточно просто сравнения
не достаточно.
'WHERE comm_id_parent = id' возвращает только те строчки, у которых равны значения перечисленных полей.
Стрелочка же на скриншоте явно указывает, что в одной строке результата выборки должны присутствовать значения выбранных полей из разных строк исходной таблицы.
Следовательно....
esterio
Отправлено: 17 Ноября, 2014 - 16:31:30
Активный участник
Покинул форум
Сообщений всего: 5025
Дата рег-ции: Нояб. 2012 Откуда: Украина, Львов
Помог: 127 раз(а)
я устал что-то доказивать. на скринште вся таблица а ен то что должно получиться. все я пас. ТС уже решил проблему
ketovpavel
Отправлено: 17 Ноября, 2014 - 16:48:11
Новичок
Покинул форум
Сообщений всего: 11
Дата рег-ции: Нояб. 2014
Помог: 0 раз(а)
Sail прав, то что если использовать способ esterio то сравнение получается если к примеру comm_id_parent = 2 то выбирается всё равно name_guest из id 1 а мне нужно если comm_id_parent = 2 то и выбирать он должен id 2 (Добавление)
Sail пишет:
esterio, серьезно? ketovpavel, для этого существуют псевдонимы.
Например, так:
SELECT t1.`field1`, t2.`field1`FROM`table1` t1 JOIN`table1` t2 ON t2.`id`= t1.`parent_id`
или 'left join', чтобы выбрать из t1 ещё и те, что не ссылаются на t2...
Sail Опишите пожалуйста по подробней как использовать Ваш способ в моем примере, а то как оказалось у меня тупо сравнение идет только по 1 id а это значит что я не правильно использую примеры (Добавление)
По идее всё должно сравниваться, но нет ни фига не сравнивает, что не так?
$sQuery="select t1.`id` as id, t1.`name_guest` as `name`, t2.`id` as parent_id, t2.`name_guest` as parent_name from `comments` t1 join `comments` t2 on t1.`comm_id_parent` = t2.`id`";
И разбираем результат выборки.
Если имеется конкретное значение id строки, для которой надо найти имя того, кому отвечаем, и такая запись может быть только одна, то можно так:
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.