слова и комменты к ним.
words
id
replies
word_id
таблицы как видно связаны по id.
надо выбрать все комменты чей word_id равен id из таблицы words.
таблица комментов большая и в ней встречаются word_id которые не равны ни одному id из таблицы words. поэтому надо отсеить.
знаю что запрос относительно простой но все же ))))
Спустя 6 минут, 4 секунды (20.07.2011 - 15:55) Winston написал(а):
Попробуй так
Спустя 3 минуты, 46 секунд PHPprogrammer написал(а):
Или так
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 написал(а):
спасибо ))))
кстати, так меджу делом,
то же самое что:
можно ведь AS добавить? это то же самое? так просто удобней для читабельности.
кстати, так меджу делом,
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 написал(а):
и еще вопрос.
если в обоих таблицах есть например id.
то когда я обращаюсь к этим id после
какое значение будет у $row[id]???
ведь он берет id c обоих таблиц.
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 написал(а):
у меня такой запрос:
у меня происходит столкновение по id.
как в этом запросе из words взять все а из replies все кроме id???
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'
а точней: #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' |

Спустя 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 это тоже вью.