2010-05-13 2 views
0

я 3 таблицы (А, В, С) Таблица А -SQL запросов для 3 таблицы

ID Name 
1 Sam 
2 Manuel 
3 Jane 

Таблица B

ID Tab_A_ID Name 
1 1  Meer 
2 1  Kutti 
3 2  Mikaro 

Таблица С

ID Tab_B_ID Price 
1 1  255.11 
2 1  30.52 
3 3  125.22 

мне нужно запрос, который должен выбрать верхнюю цену для TableA-Name из TableC. Так что только 1 верхняя цена за 1 наивную запись. e.g.-

Sam - 255,11

Manuel - 125,22

Как я могу получить это?

+0

пересмотренная проблема - я есть 3 таблицы (А, В, С) Таблица A - ID Имя 1 Сэм 2 Мануэль 3 Джейн Таблица B ID Tab_A_ID Название Местонахождение 1 1 Meer Хина 2 1 Kutti Hineya 3 2 Mikaro Seene таблица C ID Tab_B_ID Цена 1 1 255,11 2 1 30.52 3 3 125,22 Мне нужен запрос, который должен поднять верхнюю цену для TableA-Name из TableC на основе tableB-place. Так верхняя 1 цена для Сэма в Хине 255,11 e.g.- Сэм - 255,11 в Hina Manuel - 125.22 в Seene Как я могу получить это? – greffe

ответ

1

Чтобы получить цену макс за вход в A:

SELECT  a.Name, 
      MAX(c.price) 
FROM  a 
INNER JOIN b 
ON   a.id = b.tab_a_id 
INNER JOIN c 
ON   b.id = c.tab_b_id 
GROUP BY a.id, a.name 

Чтобы получить цену макс за вход A за вход B:

SELECT  a.Name, 
      b.Name 
      MAX(c.price) 
FROM  a 
INNER JOIN b 
ON   a.id = b.tab_a_id 
INNER JOIN c 
ON   b.id = c.tab_b_id 
GROUP BY a.id, b.id, a.name, b.name 

Обратите внимание, что записи в А без соответствующих заходы в B или записи в B без соответствующих записей в C будет , а не. Используйте LEFT JOIN, если вы хотите включить их в результат.

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