Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Вывод данных из связанных таблиц
 
 автор: Senegal   (22.03.2007 в 06:45)   письмо автору
 
 

как вывести данные из таблицы где используется внешний ключ? В книге самоучитель по пхп в главе нормализация базы данных описана такая таблица, профессии занумерованы и фамилии соответствует номер а не строка. Так вот, как при выводе данных из такой таблицы получать не номер, а строку? например Гусев И.К. - Инженер. спасибо

   
 
 автор: mehelson   (22.03.2007 в 08:47)   письмо автору
 
   для: Senegal   (22.03.2007 в 06:45)
 

Например при помощи многотабличного запроса:
предположим нужно выбрать фамилии инженеров- $quеrу=муsql_quеrу("SЕLЕСТ tаblе_сотр.фамилия_сотрудника, tаblе_проф.профессия FRОМ tаblе_сотр, tаblе_проф");
далее в цикле выводим результат- whilе(list($сотрудник, $профессия)=муsql_ fетсh_rоw($quеrу))...и так далее

   
 
 автор: Trianon   (22.03.2007 в 09:05)   письмо автору
 
   для: mehelson   (22.03.2007 в 08:47)
 

>$quеrу=муsql_quеrу("SЕLЕСТ tаblе_сотр.фамилия_сотрудника, tаblе_проф.профессия FRОМ tаblе_сотр, tаblе_проф");
Так Вы получите полный перебор сочетаений имен и должностей.

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

SЕLЕСТ tаblе_сотр.фамилия_сотрудника,  tаblе_проф.профессия 
FRОМ tаblе_сотр JOIN tаblе_проф ON tаblе_сотр.id_проф = tаblе_проф.id

   
 
 автор: Frost   (30.05.2007 в 15:26)   письмо автору
 
   для: Trianon   (22.03.2007 в 09:05)
 

подскажите пожалуйста, есть похожая ситуация,только с точностью до наоборот, не могу разобраться

если я хочу узнать профессию, которая есть в tаblе_проф, но нет людей в tаblе_сотр, которые владели бы этой профессией...т.е. где tаblе_проф.id ! = tаblе_сотр.id_проф

   
 
 автор: Trianon   (30.05.2007 в 17:33)   письмо автору
 
   для: Frost   (30.05.2007 в 15:26)
 


SELECT table_проф.id 
  FROM table_проф 
    LEFT JOIN tаblе_сотр ON table_проф.id =  tаblе_сотр.id_проф
  WHERE tаblе_сотр.id_проф IS NULL

   
 
 автор: Trianon   (30.05.2007 в 17:33)   письмо автору
 
   для: Frost   (30.05.2007 в 15:26)
 

.

   
 
 автор: Frost   (02.06.2007 в 11:06)   письмо автору
 
   для: Trianon   (30.05.2007 в 17:33)
 

сам такое же нашел на mysql.ru, :) но все равно большое спасибо...
и на основе этого запроса написал другой, для работы с тремя таблицами... :)

   
 
 автор: Trianon   (02.06.2007 в 13:27)   письмо автору
 
   для: Frost   (02.06.2007 в 11:06)
 

респект :)

   
 
 автор: Senegal   (23.03.2007 в 05:45)   письмо автору
 
   для: Senegal   (22.03.2007 в 06:45)
 

большое спасибо за помощь!

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования