Назовите меня сумасшедшим, но похоже, что first_name - это поле в другой таблице, а не целая запись. Поэтому я думаю, что подход, который вы ищете, - это присоединиться к вашей таблице blog_posts с таблицей ваших людей. Как вы это делаете, хотя полностью зависит от отношений: один к одному, один-ко-многим или многие-ко-многим.
Если это один к одному (что, вероятно, нет), то у вас, скорее всего, есть внешний ключ для другой таблицы в обеих таблицах (т. Е. Есть поле blog_post.people_id
и поле people.blog_post_id
). Если это так, то не имеет значения, каким образом вы выполняете соединение. Так как вы уже выбрать из blog_posts
таблицы, то это может выглядеть следующим образом:
SELECT * FROM blog_posts
INNER JOIN people ON blog_posts.people_id = people.id
Обратите внимание, что с помощью * таким образом, при выборе будет выбрать все поля из обеих таблиц (не то, что вы хотите, скорее всего,).
Для одного-ко-многим на одном из ваших столов есть только один внешний ключ. Вероятно, это ваш случай: один человек может создавать множество статей, а отношения хранятся в поле blog_posts.person_id. В этом случае запрос выше точно такой же. Единственное различие заключается в том, что вы не можете пойти другим путем.
Для отношения «многие ко многим» вам нужно будет иметь таблицу соединений в середине между двумя таблицами (некоторые люди называют их «поворотными») таблицы). Эта таблица должна была бы только записывать как people_ids, так и blog_post_ids, и представляет собой ситуацию, когда вы позволили бы многим людям создавать одно сообщение в блоге, а один человек также был автором многих сообщений в блогах. Запрос для этого отношения будут отличаться:
SELECT * FROM blog_posts b
INNER JOIN blog_post_people bp ON bp.blog_post_id = b.blog_post_id
INNER JOIN people p ON p.people_id = bp.people_id
Опять же, используя * здесь при выборе даст вам столбцы из всех трех таблиц, и вы, вероятно, следует избегать его использования.
Как выглядит ваша модель данных (схема)? Разве нет внешнего ключа от «blog_posts» до (что я бы предположил, называемого) «пользователями»)? –
http://dev.mysql.com/doc/refman/5.0/ru/join.html –
Еще не принят ответ? –