【发布时间】:2016-02-11 08:08:01
【问题描述】:
我有这样定义的 SQL Server 表:
create table users
(
user_id int NOT NULL IDENTITY(1,1),
name varchar(200),
username varchar(200),
password varchar(50),
encrypted_password varchar(100),
email varchar(30),
phone_no int,
address varchar(200),
PRIMARY KEY(user_id)
)
create table electricity
(
table_name VARCHAR(50),
electricity_bill_id int NOT NULL IDENTITY(1,1),
billing_month_year varchar(50),
units_consumed int,
user_id int,
account_number varchar(100),
amount varchar(100),
due_date varchar(100),
PRIMARY KEY(electricity_bill_id),
FOREIGN KEY(user_id) REFERENCES users(user_id)
);
insert into electricity (table_name, billing_month_year, units_consumed, user_id, account_number, amount, due_date)
values ('Electricity','2015-05-22',13,1,'acc01',2500,'2015-06-22');
create table water
(
table_name VARCHAR(10),
water_bill_id int NOT NULL IDENTITY(1,1),
billing_month_year_date varchar(50),
units_consumed int,
user_id int,
account_number varchar(100),
amount varchar(100),
due_date varchar(100),
PRIMARY KEY(water_bill_id),
FOREIGN KEY(user_id) REFERENCES users(user_id)
)
insert into water(table_name, billing_month_year_date, units_consumed, user_id, account_number, amount, due_date)
values ('Water','2015-04-22',17,1,'acc01',2500,'2015-05-14');
create table telephone
(
table_name VARCHAR(10),
telecom_bill_id int NOT NULL IDENTITY(1,1),
bill_Period varchar(100),
user_id int,
account_number varchar(100),
amount varchar(100),
issued_date varchar(50),
due_date varchar(50),
PRIMARY KEY(telecom_bill_id),
FOREIGN KEY(user_id) REFERENCES users(user_id)
)
insert into telephone(table_name, bill_Period, user_id, account_number, amount, issued_date, due_date)
values ('Telephone', '2015-04-22', 1, 'acc01', 2500, '2015-05-14', '2015-05-18');
问题是我想加入electricity、water 和telephone 表,基于我需要传递给查询的user id。
我还想从三个表中选择 maximum due_date。但是,我有一些问题。
请有人帮助我。
【问题讨论】:
-
每个表中
table_name列的用途是什么?似乎毫无意义 - 表的名称已经定义了它是什么表..... -
@marc_s 不,这只是为了测试应用程序的目的。与此处无关。
标签: sql sql-server join