[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: помогите с запросом.
MatrixGod
есть 2 таблицы: words, replies.
слова и комменты к ним.

words
id

replies
word_id

таблицы как видно связаны по id.

надо выбрать все комменты чей word_id равен id из таблицы words.

таблица комментов большая и в ней встречаются word_id которые не равны ни одному id из таблицы words. поэтому надо отсеить.

знаю что запрос относительно простой но все же ))))



Спустя 6 минут, 4 секунды (20.07.2011 - 15:55) Winston написал(а):
Попробуй так
SELECT * FROM `words` w, `replies` r WHERE `r`.`word_id` = `w`.`id`




Спустя 3 минуты, 46 секунд PHPprogrammer написал(а):
Или так
SELECT * FROM `words` w JOIN `replies` r ON `w`.`id` = `r`.`id`

Спустя 10 минут, 7 секунд (20.07.2011 - 16:05) MatrixGod написал(а):
спасибо ))))

кстати, так меджу делом,
SELECT * FROM `words` w, `replies` r WHERE `r`.`word_id` = `w`.`id`

то же самое что:
SELECT * FROM `words` AS w, `replies` AS r WHERE r.word_id = w.id


можно ведь AS добавить? это то же самое? так просто удобней для читабельности.

Спустя 4 минуты, 1 секунда (20.07.2011 - 16:09) Winston написал(а):
Цитата (MatrixGod @ 20.07.2011 - 16:05)
то же самое что:

Ага, два мои запроса тоже идентичны, только написаны по разному.
Можно и AS добавить

Спустя 3 минуты, 28 секунд (20.07.2011 - 16:13) MatrixGod написал(а):
и еще вопрос.
SELECT * FROM `words` AS w, `replies` AS r

если в обоих таблицах есть например id.
то когда я обращаюсь к этим id после
while($row = mysql_fetch_array(запрос))

какое значение будет у $row[id]???
ведь он берет id c обоих таблиц.

Спустя 5 минут, 9 секунд (20.07.2011 - 16:18) Winston написал(а):
Цитата (MatrixGod @ 20.07.2011 - 16:13)
то когда я обращаюсь к этим id после

В таком случае нужно перечислять все поля для выбора, например

SELECT `w`.`id` AS `wordsId`, `r`.`id` AS `repId` FROM `words` AS w, `replies` AS r

Потом выводить
$row['wordsId']
// или
$row['repId'];

Спустя 1 час, 9 минут, 14 секунд (20.07.2011 - 17:27) MatrixGod написал(а):
у меня такой запрос:
SELECT * FROM `words` AS w, `replies` AS r WHERE w.id = r.word_id

у меня происходит столкновение по id.

как в этом запросе из words взять все а из replies все кроме id???

Спустя 5 минут, 2 секунды (20.07.2011 - 17:32) Winston написал(а):
Цитата (MatrixGod @ 20.07.2011 - 17:27)
у меня происходит столкновение по id.

Что значит столкновение ?

Спустя 2 минуты, 53 секунды (20.07.2011 - 17:35) MatrixGod написал(а):
пишет что с обоих таблиц беру id.

а точней: #1060 - Duplicate column name 'id'

Спустя 6 минут, 52 секунды (20.07.2011 - 17:42) Winston написал(а):
Вот этот запрос
Цитата (MatrixGod @ 20.07.2011 - 17:27)
SELECT * FROM `words` AS w, `replies` AS r WHERE w.id = r.word_id

Выдает ?
Цитата (MatrixGod @ 20.07.2011 - 17:35)
#1060 - Duplicate column name 'id'

blink.gif

Спустя 4 минуты, 44 секунды (20.07.2011 - 17:47) MatrixGod написал(а):
CREATE VIEW open_replies AS SELECT * FROM `open_words` AS w, `replies` AS r WHERE w.id = r.word_id


вот что выдает эту ошибку. open_words это тоже вью.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.