Автор Тема: Выбор из двух таблиц  (Прочитано 6739 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн =Женек=

  • Завсегдатай
  • Пользователь
  • **
  • Сообщений: 66
  • +0/-0
  • 0
    • Просмотр профиля
    • http://icq-easy-hack.narod.ru
Выбор из двух таблиц
« : 26 Декабря 2005, 07:26:23 »
Есть таблица A с полями number_e и FIO (фамилия человека и его уникальные номер).
Есть таблица B c полями number_e,  TITLE и date (номер человека и название работы и срок исполнения).

Мне нужно выбрать из таблицы B все что сделал например "Иванов" (в таблице A есть запись с полем FIO "иванов") за последнюю неделю.

Как сделать? (Два варианта желательно для MySQL и InterBase)

Оффлайн for_i_0

  • $15 per hour
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 555
  • +0/-0
  • 2
    • Просмотр профиля
    • http://www.php.net/manual/en
Выбор из двух таблиц
« Ответ #1 : 30 Декабря 2005, 14:06:22 »
MySQL:
ИМХО
дату начало недели придется вычислить внешними средствами(языком программирования)

SELECT a.fio, b.title FROM `a`, `b` WHERE a.number_e = b.number_e && a.number_e = \'номер иванова\' && BETWEEN NOW() && \'результат вычисления\'

С наступающим ;)
« Последнее редактирование: 30 Декабря 2005, 14:31:29 от for_i_0 »
[off]Безработный[/off]

Voron

  • Гость
Выбор из двух таблиц
« Ответ #2 : 06 Апреля 2006, 22:54:16 »
Тот ж вопрос мне надо выбрать из двух таблиц.
Делаю такой запрос но не работет (Вообще я его правильно делаю?):
$sql mysql_query("select proect.name_org, 
       proect.cat, 
       proect.who, 
       proect.fio, 
proect.dolznost, 
proect.tel, 
proect.facs, 
proect.mail, 
proect.www, 
proect.adres,hod.id_org AS org2,hod.fio AS fio2,hod.dolznost AS dolznost2, 
hod.tel AS tel2,hod.facs AS facs2,hod.mail AS mail2,hod.www AS www2, 
hod.adres AS adres2 FROM proect,hod"
); 
$result mysql_query($sql); 
while(
$row mysql_fetch_array($result)) {

Оффлайн for_i_0

  • $15 per hour
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 555
  • +0/-0
  • 2
    • Просмотр профиля
    • http://www.php.net/manual/en
Выбор из двух таблиц
« Ответ #3 : 06 Апреля 2006, 23:10:11 »
Voron
а где звязь между таблицами ?

читаем не отрываясь от монитора Народная самодеятельность — связи таблиц в MySQL
[off]Безработный[/off]

Voron

  • Гость
Выбор из двух таблиц
« Ответ #4 : 06 Апреля 2006, 23:19:51 »
Связь мне нужна была только к таблице proect/ По этому связи делал вот как между name_org и id_org что не так?
#
# Структура таблицы `client`
#

CREATE TABLE `client` (
  `
idint(11NOT NULL auto_increment,
  `
id_orgtext NOT NULL,
  `
fiotext NOT NULL,
  `
dolznosttext NOT NULL,
  `
teltext NOT NULL,
  `
facstext NOT NULL,
  `
mailtext NOT NULL,
  `
wwwtext NOT NULL,
  `
adrestext NOT NULL,
  
PRIMARY KEY  (`id`)
TYPE=MyISAM AUTO_INCREMENT=25 ;


# --------------------------------------------------------

#
# Структура таблицы `hod`
#

CREATE TABLE `hod` (
  `
idint(11NOT NULL auto_increment,
  `
id_orgtext NOT NULL,
  `
chislotext NOT NULL,
  `
zvonoktext NOT NULL,
  `
contacttext NOT NULL,
  `
reztext NOT NULL,
  `
doptext NOT NULL,
  `
sosttext NOT NULL,
  
PRIMARY KEY  (`id`)
TYPE=MyISAM AUTO_INCREMENT=11 ;

#
# Структура таблицы `proect`
#

CREATE TABLE `proect` (
  `
idint(11NOT NULL auto_increment,
  `
name_orgtext NOT NULL,
  `
cattext NOT NULL,
  `
whotext NOT NULL,
  `
fiotext NOT NULL,
  `
dolznosttext NOT NULL,
  `
teltext NOT NULL,
  `
facstext NOT NULL,
  `
mailtext NOT NULL,
  `
wwwtext NOT NULL,
  `
adrestext NOT NULL,
  
PRIMARY KEY  (`id`)
TYPE=MyISAM AUTO_INCREMENT=12 ;

Оффлайн for_i_0

  • $15 per hour
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 555
  • +0/-0
  • 2
    • Просмотр профиля
    • http://www.php.net/manual/en
Выбор из двух таблиц
« Ответ #5 : 06 Апреля 2006, 23:49:03 »
Voron
связь по полю с значением text это что-то новое.
Прочти пожалуйста cтатью которую я тебе дал выше.

Потом не злоупотребляй полем text. используй для записей с длиной меньше 250 символов тип VARCHAR. А про то как правильно использывать типы в зависемости от потребностей читаем здесь:
6.2 Типы данных столбцов
[off]Безработный[/off]

Оффлайн Mr.Voron

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 13
  • +0/-0
  • 0
    • Просмотр профиля
    • http://forum4all.ru
Выбор из двух таблиц
« Ответ #6 : 07 Апреля 2006, 20:11:42 »
for_i_0
У меня стоит другая задача. Так что TEXT все нормально сайдет для меня. Ну вот теперь сделал как-то со связями таблицу правильео? CREATE TABLE client (
  
id INT NOT NULL AUTO_INCREMENT,
  
proect_id INT NOT NULL,
  
fio TEXT NULL,
  
dolznost TEXT NULL,
  
tel TEXT NULL,
  
facs TEXT NULL,
  
mail TEXT NULL,
  
www TEXT NULL,
  
adres TEXT NULL,
  
PRIMARY KEY(idproect_id),
  
INDEX client_FKIndex1(proect_id)
);

CREATE TABLE hod (
  
id INT NOT NULL AUTO_INCREMENT,
  
proect_id INT NOT NULL,
  
chislo TEXT NULL,
  
zvonok TEXT NULL,
  
contact TEXT NULL,
  
rez TEXT NULL,
  
dop TEXT NULL,
  
sost TEXT NULL,
  
PRIMARY KEY(idproect_id),
  
INDEX hod_FKIndex1(proect_id)
);

CREATE TABLE proect (
  
id INT NOT NULL AUTO_INCREMENT,
  
name_org TEXT NULL,
  
cat TEXT NULL,
  
who TEXT NULL,
  
fio TEXT NULL,
  
dolznost TEXT NULL,
  
tel TEXT NULL,
  
facs TEXT NULL,
  
mail TEXT NULL,
  
www TEXT NULL,
  
adres TEXT NULL,
  
PRIMARY KEY(id)

Оффлайн for_i_0

  • $15 per hour
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 555
  • +0/-0
  • 2
    • Просмотр профиля
    • http://www.php.net/manual/en
Выбор из двух таблиц
« Ответ #7 : 07 Апреля 2006, 21:25:39 »
Mr.Voron
select proect.name_org,
       proect.cat,
       proect.who,
       proect.fio,
proect.dolznost,
proect.tel,
proect.facs,
proect.mail,
proect.www,
proect.adres,hod.id_org AS org2,hod.fio AS fio2,hod.dolznost AS dolznost2,
hod.tel AS tel2,hod.facs AS facs2,hod.mail AS mail2,hod.www AS www2,
hod.adres AS adres2 FROM proect, hod WHERE proect.id = hod.proect_id

Логично ?
[off]Безработный[/off]

Оффлайн Mr.Voron

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 13
  • +0/-0
  • 0
    • Просмотр профиля
    • http://forum4all.ru
Выбор из двух таблиц
« Ответ #8 : 08 Апреля 2006, 20:03:00 »
Все Логиччно и почему тогда не рабоатет: $sql mysql_query("select proect.name_org,
proect.cat,
proect.who,
proect.fio,
proect.dolznost,
proect.tel,
proect.facs,
proect.mail,
proect.www,
proect.adres,hod.id_org AS org2,hod.fio AS fio2,hod.dolznost AS dolznost2,
hod.tel AS tel2,hod.facs AS facs2,hod.mail AS mail2,hod.www AS www2,
hod.adres AS adres2 FROM proect, hod WHERE proect.id = hod.proect_id"
);

if(
$row mysql_fetch_array($sql)) {

Оффлайн Mr.Voron

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 13
  • +0/-0
  • 0
    • Просмотр профиля
    • http://forum4all.ru
Выбор из двух таблиц
« Ответ #9 : 08 Апреля 2006, 21:24:16 »
Сорри все работает.

Оффлайн for_i_0

  • $15 per hour
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 555
  • +0/-0
  • 2
    • Просмотр профиля
    • http://www.php.net/manual/en
Выбор из двух таблиц
« Ответ #10 : 08 Апреля 2006, 21:34:55 »
замечтательно, тема закрыта.
[off]Безработный[/off]

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28