LINUX.ORG.RU

[sql] [mysql] Помогите составить запрос


0

0

Привет.

Есть две сферические таблицы:

CREATE TABLE `users` (
`id` TINYINT(3) UNSIGNED NOT NULL AUTO_INCREMENT,
`name` VARCHAR(255) NOT NULL,
PRIMARY KEY (`id`)
);

CREATE TABLE `posts` (
`id` MEDIUMINT(5) UNSIGNED NOT NULL AUTO_INCREMENT,
`user_id` TINYINT(3) UNSIGNED NOT NULL,
`post` TEXT NOT NULL,
PRIMARY KEY (`id`)
);

Подскажите самый простой запрос, который бы выводил поля `users.name`, `posts.post` где `posts.user_id` соответствует `users.id`. Тут ведь можно без джойнов?

select u.name, p.post from users as u left join posts p on u.id=p.userid;

ovax ★★★ ()
Ответ на: комментарий от PartyZan

ЕМНИП, тот же джойн? Просто некий синтаксический сахар..

boombick ★★★★★ ()
Ответ на: комментарий от PartyZan

в мускуле перечисление через запятую эквивалентно INNER JOIN, только с меньшим приоритетом. И это ничуть не менее правильно.

nu11 ★★★★★ ()
Ответ на: комментарий от anonymous

Ну например, старый оракл (версии 8) join не поддерживает в запросах :-)

no-dashi ★★★★★ ()
Ответ на: комментарий от nu11

>в мускуле перечисление через запятую эквивалентно INNER JOIN, только с меньшим приоритетом. И это ничуть не менее правильно.
cross join, если быть точным. «иннер» из этого получается добавлением условия where

heisenberg ★★ ()
Ответ на: комментарий от heisenberg

если быть совсем точным, то в мускуле cross join == inner join :)

nu11 ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.