Автор Тема: Обьединение двух и трех таблиц таблиц  (Прочитано 6846 раз)

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

Оффлайн Mr.Voron

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 13
  • +0/-0
  • 0
    • Просмотр профиля
    • http://forum4all.ru
Есть такие таблицы:proect(id,name_org,cat,eho,fio...),client(id,proect_id,fio,dolznost,tel...)hod(id,proect_id,chislo,zvonok,contact,rez...)
Таблицы связаны между собой, proect явл. основным, а cliebt и hod, подчиненые. Задача такая связать пока две таблицу по id из таблицы proect. Пытаюсь сделать вот что:$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,client.fio AS fio2,client.dolznost AS dolz2,
client.tel AS tel2,client.facs AS facs2,client.mail AS mail2,client.www AS www2,
client.adres AS adres2,client.proect_id FROM proect,client
 WHERE proect.id = client.proect_id
  GROUP BY fio2"
);

while(
$row mysql_fetch_array($sql)) {

Но нихрена не работает выдает все что находиться в двух таблицах. И в чем проблема ?

Оффлайн for_i_0

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

Оффлайн Mr.Voron

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 13
  • +0/-0
  • 0
    • Просмотр профиля
    • http://forum4all.ru
Обьединение двух и трех таблиц таблиц
« Ответ #2 : 18 Апреля 2006, 21:48:38 »
Вывести надо данные из таблицы proect где id=1(или какому-то другому числу) + вывести данные из таблицы client, где proect_id будет равен id из proect т.е proect.id.

Оффлайн for_i_0

  • $15 per hour
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 555
  • +0/-0
  • 2
    • Просмотр профиля
    • http://www.php.net/manual/en
Обьединение двух и трех таблиц таблиц
« Ответ #3 : 19 Апреля 2006, 08:28:25 »
Mr.Voron
WHERE poect.id = client.proect_id && proect.id = 1
[off]Безработный[/off]

Оффлайн Mr.Voron

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 13
  • +0/-0
  • 0
    • Просмотр профиля
    • http://forum4all.ru
Обьединение двух и трех таблиц таблиц
« Ответ #4 : 20 Апреля 2006, 08:30:09 »
А, для 3 таблиц вот така значит:
 
WHERE proect
.id client.proect_id && proect.id AND proect.id hod.proect_id && proect.id 1

Оффлайн for_i_0

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

Оффлайн Mr.Voron

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 13
  • +0/-0
  • 0
    • Просмотр профиля
    • http://forum4all.ru
Обьединение двух и трех таблиц таблиц
« Ответ #6 : 21 Апреля 2006, 21:07:43 »
Я вот сделал с 3 таблицами. Вот только не пойму почему ошибка когда нет данных в таблице 3 то,скрипт не работает. Экран весь белый.=( Как моня решить проблему?

Оффлайн for_i_0

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

Оффлайн Mr.Voron

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 13
  • +0/-0
  • 0
    • Просмотр профиля
    • http://forum4all.ru
Обьединение двух и трех таблиц таблиц
« Ответ #8 : 21 Апреля 2006, 21:34:32 »
Я слыхал про такую команду. Вот не пойму как она рабоатет. Можите обьяснить хоть как она рабоатет?

Оффлайн for_i_0

  • $15 per hour
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 555
  • +0/-0
  • 2
    • Просмотр профиля
    • http://www.php.net/manual/en
Обьединение двух и трех таблиц таблиц
« Ответ #9 : 21 Апреля 2006, 21:44:44 »
Mr.Voron
я же дал ссылку в которой все конретно сказанно. Неужели ты думаешь, что я смогу сделать это лучше разработчиков СУБД ?
[off]Безработный[/off]

Оффлайн Mr.Voron

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

Оффлайн Mr.Voron

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 13
  • +0/-0
  • 0
    • Просмотр профиля
    • http://forum4all.ru
Обьединение двух и трех таблиц таблиц
« Ответ #11 : 22 Апреля 2006, 21:35:28 »
Как то не пойму все равно, как все оно работает.
Я вот атк написал но теперь выдает все сразу что в БД.
FROM proect LEFT JOIN client ON (proect.id client.proect_id && proect.id $secret_idLEFT JOIN hod ON (proect.id hod.proect_id && proect.id $secret_id)

Оффлайн Mr.Voron

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 13
  • +0/-0
  • 0
    • Просмотр профиля
    • http://forum4all.ru
Обьединение двух и трех таблиц таблиц
« Ответ #12 : 23 Апреля 2006, 10:51:58 »
Вот теперь так сделал: (По моему все работает)
FROM proect LEFT JOIN client ON (proect.id client.proect_idLEFT JOIN hod ON (proect.id hod.proect_id)
WHERE proect.id $secret_id



Вот только теперь другая проблема. Когда у меня несколько данных надо выводить во второй и 3 таблици он дублирует информацию первой таблицы.
Ну если не понятно в чем проблема, то вот фотки.

http://bogi-olimpa.info/add/LEFT_JOIN.jpg
http://bogi-olimpa.info/add/LEFT_JOIN-2.jpg
« Последнее редактирование: 23 Апреля 2006, 18:37:08 от Mr.Voron »

 

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