Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

sql изберете поле в 2 колони

Трябва да има връзка между първичен ключ и външен ключ за JOIN данни между две таблици.

Това е идеята за релационната алгебра и нормализацията. В противен случай корелацията на данните е безсмислена.

http://en.wikipedia.org/wiki/Database_normalization

CROSS JOIN ще ви даде всички възможности. (1,4), (1,5), (1, 6) ... (3,6). Не мисля, че това е, което искате.

Винаги можете да използвате функция ROW_NUMBER() OVER (), за да генерирате сурогатен ключ и в двете таблици. Подредете данните както искате в клаузата OVER (). Това обаче все още не е в нормална форма.

Накратко. Защо правите това?

База данни за бърз тест. Съхранява продукти от спортни стоки и стоки за дома в необичайна форма.

Резултатите от SELECT не означават нищо.

-- Just play
use tempdb;
go

-- Drop table
if object_id('abnormal_form') > 0
drop table abnormal_form
go

-- Create table
create table abnormal_form
(
    Id int,
    Category int,
    Name varchar(50)
);

-- Load store products
insert into abnormal_form values
(1, 1, 'Bike'),
(2, 1, 'Bat'),
(3, 1, 'Ball'),
(4, 2, 'Pot'),
(5, 2, 'Pan'),
(6, 2, 'Spoon');

-- Sporting Goods
select * from abnormal_form where Category = 1

-- Home Goods
select * from abnormal_form where Category = 2

-- Does not mean anything to me
select Id1, Id2 from
(select ROW_NUMBER () OVER (ORDER BY ID) AS Rid1, Id as Id1 
 from abnormal_form where Category = 1) as s
join
(select ROW_NUMBER () OVER (ORDER BY ID) AS Rid2, Id as Id2 
 from abnormal_form where Category = 2) as h
on s.Rid1 = h.Rid2

Определено се нуждаем от повече информация от потребителя.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да изберете данни на таблица от друга база данни в SQL Server?

  2. Грешка на SQL Server 111:„...трябва да е първият израз в пакет от заявки“

  3. Как мога да структурирам заявка, за да ми даде само редовете, които съответстват на ВСИЧКИ стойности в CSV списък с идентификатори в T-SQL

  4. Избягване на блокиране на SQL с настройка на заявка:Съвети от Брент Озар

  5. Променете ограничение CHECK в SQL Server с помощта на T-SQL