2017-03-04 3 views
0
drop database if exists RentaHouse; 
create database RentaHouse; 

use RentaHouse; 

create table Staff(
staffNo char(5) not null primary key, 
fName varchar(15), 
lName varchar(15), 
position varchar(15), 
dob date, 
salary decimal (7,2) unsigned 
); 

create table PropertyForRent(
propertyNo char(5) primary key, 
street varchar(35) not null, 
city varchar(15) not null, 
pcode varchar(10), 
type varchar(20) not null, 
rooms tinyint unsigned not null, 
rent decimal (6,2) unsigned, 
staffNo char(5) 
); 

ALTER TABLE PropertyForRent 
    ADD CONSTRAINT whatever foreign key(staffNo) references Staff (staffNo) ON DELETE CASCADE ON UPDATE CASCADE; 


insert into staff values 
('s1234','Mary','Jones', 'Sales', '1975-12-22',45000), 
('s1834','Pat','Roche', 'IT', '1972-09-13',42000), 
('s1998','Michael','Brown', 'Sales', '1980-12-09',43500); 

insert into propertyForRent values 
('p3296','21 Ash Street','Tramore','WD34-543', 'Bungalow',4,1200,'s1234'), 
('p3299','William Street','Dungarvan','WD99-088', 'Terrace',3,1050,'s1234'), 
('p3344','9 Mary Street','New Ross','WX99-044', 'Terrace',3,800,'s1998'), 
('p3356','21 Mary Street','New Ross','WX99-076', '2 Storey',4,1100,null); 



/*doesn't work!*/ 
CREATE VIEW anyView AS 
    select * from Staff; 

/*work!*/ 
select * from Staff; 

/*work!*/ 
select street, city, type, rent, concat(fName, lName) as 'Name' from 
PropertyForRent join Staff on PropertyForRent.staffNo = Staff.staffNo where city = 'New Ross' order by rent; 

/*doesn't work!*/ 
CREATE VIEW myView AS 
select street, city, type, rent, concat(fName, lName) as 'Name' from 
PropertyForRent join Staff on PropertyForRent.staffNo = Staff.staffNo where city = 'New Ross' order by rent; 

alle Ansichten geben kein Ergebnis zurück! Ich verwende "sakila" als Standardschema mit MySQL Workbench 6.3.8.ANSICHTEN in MySQL Workbench geben immer (0) Zeile (n) zurück

Ich habe 2 Tage online nach einer Lösung suchen, aber ich denke, es ist Zeit zu fragen, wer Expertise haben bitte.

P. Sichten funktionieren nicht für jede Datenbank, die ich nicht nur für dieses Schema erstelle!

enter image description here

+1

Haben Sie mysql Kommandozeile versucht, mit? Versuchen Sie, das Schema zu verwenden (wählen Sie * aus RentaHouse.anyView;). Ich habe überhaupt kein Problem gefunden. Werfen Sie einen Blick: http://sqlfiddle.com/#!9/8e9ca1/2 –

+0

Das Problem ist in der Ansicht nicht in der Select-Anweisung sqlfiddle.com akzeptiert nicht VIEW. Wählen Sie * aus RentaHouse.anyView; funktioniert – Yahya

+0

wählen Sie * von RentaHouse.anyView; Wenn es funktioniert, liegt das Problem daran, dass Ihre Workbench die Ansicht in einer anderen Datenbank erstellt. Versuchen Sie, die Standarddatenbank festzulegen, indem Sie in der RentaHouse-Datenbank auf die Defaulf-Datenbank klicken. Die Standarddatenbank sollte fett gedruckt sein. –

Antwort

1
CREATE VIEW anyView1 AS select * from Staff; 

then fetch data 
select * from anyView1; 


CREATE VIEW myViewss AS 
select street, city, type, rent, concat(fName, lName) as 'Name' from 
PropertyForRent join Staff on PropertyForRent.staffNo = Staff.staffNo   where city = 'New Ross' order by rent; 


select * from myViewss;