Форум программистов
 
Регистрация на форуме тут, о проблемах пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail, а тут можно восстановить пароль

Купить рекламу на форуме 15-35 тыс рублей в месяц

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Ответ
 
Опции темы Поиск в этой теме
Старый 14.12.2012, 12:20   #1
VladimirNew
Пользователь
 
Регистрация: 27.05.2011
Сообщений: 74
По умолчанию Выборка данных из таблицы

Всем привет.
Мне нужно сделать сложную выборку... В общем имеется 2 таблицы: window и document. в таблице window есть поле data, значение которого равно значению поля id из таблицы document. Также window имеет поле tab...
Мне нужно сделать выборку всех полей из таблицы window, где tab = нужному значению, но при этом еще из таблицы document нужно сделать выборку всех полей, где id = data (из таблицы window).
Надеюсь понятно я понятно изъяснил суть проблемы.

т.е. судя по рисунку должны быть выбраны запись по window по полю tab, а потом в зависимости от этого из таблицы document должны быть выбраны нужные записи

Последний раз редактировалось VladimirNew; 14.12.2012 в 12:25.
VladimirNew вне форума Ответить с цитированием
Старый 14.12.2012, 12:41   #2
Andkorol
Старожил
 
Регистрация: 31.05.2010
Сообщений: 3,301
По умолчанию

Для tab = 1:
PHP код:
SELECT `window`.*, `document`.* 
FROM `window`, `document
WHERE `window`.`tab` = '1' 
AND `document`.`id` = `window`.`data`; 
PS: но это если нужны именно записи, которые есть в обеих таблицах. В противном случае – нужен JOIN.

Последний раз редактировалось Andkorol; 14.12.2012 в 12:44. Причина: PS
Andkorol вне форума Ответить с цитированием
Старый 14.12.2012, 12:53   #3
VladimirNew
Пользователь
 
Регистрация: 27.05.2011
Сообщений: 74
По умолчанию

т.е. с помощью join должен пройти такой запрос:
Код:
  SELECT * FROM
  `document`
  INNER JOIN 
  `window`
  ON `document`.`id` = `window`.`data`;
VladimirNew вне форума Ответить с цитированием
Старый 14.12.2012, 13:04   #4
Andkorol
Старожил
 
Регистрация: 31.05.2010
Сообщений: 3,301
По умолчанию

Основной запрос вроде из window должен быть, по вашему условию?

Применение JOIN зависит от необходимой логики.
Допустим, в window есть запись с data = 55, а в document нет записи с id = 55.
Выполняем запрос по data = 55.
Какой результат нужен в таком случае?
Включать ли эту строку в результат – или пропустить?
Andkorol вне форума Ответить с цитированием
Старый 15.12.2012, 06:05   #5
VladimirNew
Пользователь
 
Регистрация: 27.05.2011
Сообщений: 74
По умолчанию

Наверное я все же немного не корректно объяснил. В конце концов результатом выборки должен быть массив данных из таблицы document, но данные должны вытягиваться на основе выборки из таблицы window.
Ваш способ отлично работает, спасибо.
VladimirNew вне форума Ответить с цитированием
Ответ
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Выборка данных из таблицы и составление отчета! WildKosha Microsoft Office Excel 20 25.02.2013 16:11
Выборка данных из таблицы aimk0 БД в Delphi 2 03.04.2012 21:32
выборка данных из сводной таблицы 9112 Microsoft Office Excel 4 21.03.2012 12:18
POSTGRE: выборка данных соотв. значению из той же таблицы Blondy SQL, базы данных 10 30.10.2011 14:57
Выборка данных из таблицы SlavaSH БД в Delphi 20 14.10.2009 12:32