2010-08-12 3 views
3

У меня есть 3 таблицы A, B и CСоединение слева с тем, где статья

alt text

Я делаю это: - /* Там нет никакой связи между таблицей А и таблицей В. Таблица A используется только для предоставления значений C.Profile */ 1-й шаг) D < ---- Выберите * из C, где Profile = 1 // хотите указать определенный ProID (я успешно извлек его из таблицы A)

второй этап) выход < --- Выберите B.sname, D.Status от B LEFT JOIN D на B.ID = D.ID

так, что вывод выглядит требуемой выходной таблице, показанной выше: -

Могу ли я сделать это, используя один запрос? как?

ответ

3

Вы имеете в виду подзапрос:

Select B.DirName,D.Status 
from B Left Join (
    Select * 
    from C 
    where ProId=1) As D 
On B.DirID=D.DirID 

Это лучше всего использовать список полей, а не *

+1

Я думаю, что это будет работать ... Great .. – PrateekSaluja

+0

Сколько это внутренний выбор (внутри pranthesis) наложить нагрузку на сервер базы данных? Это какой-то тяжелый запрос или БД будет обрабатывать его очень гладко? – VSB

Смежные вопросы