Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Составление SQL-запросов > Как достать данные одним запросом?


Автор: DenWPF 13.5.2011, 01:06
Person - ид, имя, другие данные - таблица с людьми.

Action - id_Person, id_Person, XXX.

Нужно сделать запрос выборки, и достать полную таблицу Action.

Имя, Имя, XXX

Автор: Gluttton 13.5.2011, 01:24
Код

select
    Person.Name as NameOne,
    Person.Name as NameTwo,
    Action.XXX
from Person
    inner join Action
    on Person.ID = Action.IDPerson


Но для меня остается загадкой, как могут быть в таблице Action два поля с одинаковым именем: id_Person и зачем в запросе дважды выводить одно и то же поле?


Цитата(DenWPF @  13.5.2011,  01:06 Найти цитируемый пост)
Нужно сделать запрос выборки, и достать полную таблицу Action.

Код

select * from Action

 smile 

Автор: DenWPF 13.5.2011, 02:14
это два разных id_Person
Person
1, ...
2, ...


Action
1,2,ХХХ

Автор: Frees 13.5.2011, 07:27
Цитата(DenWPF @  13.5.2011,  05:14 Найти цитируемый пост)
это два разных id_Person

название полей значит разные?

Код

SELECT
    P1.NAME AS NAMEONE,
    P2.NAME AS NAMETWO,
    A.*
FROM ACTION A
    LEFT JOIN PERSON P1  ON P1.ID = A.IDPERSON1
    LEFT JOIN PERSON P2  ON P2.ID = A.IDPERSON2

Автор: DenWPF 13.5.2011, 09:30
там имена не одинаковые..блин туплю.

вот сделал я эту таблицу.
Но почему то запрос не работает...

Код

--
-- Структура таблицы `Action`
--

CREATE TABLE IF NOT EXISTS `Action` (
  `id_Person` int(11) NOT NULL,
  `id_Person2` int(11) NOT NULL,
  `xxx` int(11) NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=cp1251;

--
-- Дамп данных таблицы `Action`
--

INSERT INTO `Action` (`id_Person`, `id_Person2`, `xxx`) VALUES
(1, 2, 123),
(2, 1, 321);

-- --------------------------------------------------------

--
-- Структура таблицы `Person`
--

CREATE TABLE IF NOT EXISTS `Person` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(255) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=cp1251 AUTO_INCREMENT=3 ;

--
-- Дамп данных таблицы `Person`
--

INSERT INTO `Person` (`id`, `name`) VALUES
(1, 'denis'),
(2, 'vadik');

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)