2009-04-18 6 views
2

Я не знаю, как это сделать, но мне нужна срочная помощь от вас, ребята.MySql: Выбор из нескольких таблиц

У меня есть два таблицы, а именно государства, Package_Details. Ниже приведены детали таблицы.

Штаты

  • state_id
  • state_name

Package_Details

  • ID
  • sender_state // Stores состояние с государственным ID
  • receiver_state // Stores состояние с государственным ID

Теперь я имею проблемы построения SQL-запрос, который будет выбрать и показать записи в Package_Details заменяющих sender_state и receiver_state с соответствующим state_name в государствах таблице.

Большое спасибо за ваше время.

ответ

5

Вам нужен присоединиться. Пример:

SELECT p.id, s1.state_name AS sender, s2.state_name AS receiver 
    FROM 
     package_details p 
    JOIN states s1 ON (p.sender_state = s1.state_id) 
    JOIN states s2 ON (p.receiver_state = s2.state_id) 

Обратите внимание, как вы можете использования states дважды в запросе, присвоив ему псевдоним (states s1) и используя псевдонимы, чтобы обратиться к таблице.

Если вам нужно часто делать это, вы можете создать представление.

Документация MySQL по объединениям находится здесь: http://dev.mysql.com/doc/refman/5.0/en/join.html. Документация по созданию просмотров находится здесь: http://dev.mysql.com/doc/refman/5.0/en/create-view.html.

+0

Я уверен, что вы знаете о присоединениях. То, что вам нужно изучить, - это таблицы с псевдонимом в запросах. Это позволяет использовать таблицу более одного раза в запросе. –

+0

@ Salman A: Я предполагаю, что это направлено на @War Coder, как его в примере? Я добавлю примечание в свой ответ об этом. – derobert

Смежные вопросы