2016-12-08 6 views
-1

Я пытаюсь объединить 2 таблицы. По их первичному ключу, но также добавьте количество подсчетов из одной таблицы. Я попыталсяКомбинация внутреннего соединения и ansi

Select a.ram as ram1, b.ram as ram2 from a,b 

Теперь я хочу, чтобы добавить COUNT (*) из Ь, не работает.

Select 
(Select count(*) from b inner join a on a.ram=b.ram as numberbids), 
A.ram as ram1, b.ram as ram2 from a,b; 

дает мне правильные столбцы, но считает все ставки Ъ в целом, а не по отношению к Рамсу.

Может ли кто-нибудь помочь? Благодаря

я получил: Таблица А:

ram 
x 
y 

Таблица B:

z 
ram 
bids 

Я хочу:

ram1 ram2 numberofbids 

Я надеюсь, что это помогает? Я новичок в SQL

+2

Подсказка: 'JOIN '. 'GROUP BY'. –

+1

@ Hornlui2 Можете ли вы разместить некоторые данные образца? –

+0

Где запутанный предмет. Внутренние соединения - это ANSI SQL. – jarlh

ответ

0

Попробуйте это:

select a.ram,b.ram,count(*) as numberbids 
from b inner join a on a.xy=b.xy 
group by a.ram,b.ram 

В случае, если вы не хотите делать INNER JOIN, вы хотите перекрестную продукт затем использовать CROSS JOIN:

select a.ram,b.ram,count(*) as numberbids 
from b cross join a 
group by a.ram,b.ram 
+0

Проблема в том, что вывод для a.ram и b.ram тогда тот же, но на самом деле предполагается, что он будет другим. WIth my Выберите a.ram как ram1, b.ram как ram2 из a, bi получите право, разные выходы для a.ram и b.ram, но не можете установить его по отношению к счету – Hornlui2

+0

@ Hornlui2 Я думаю, 'xy' является FK. Поэтому измените соединение на 'a.xy = b.xy'. Я обновил свой ответ. –

+0

no, ram - это FK. xy ist missleading извините, изменил его – Hornlui2

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