2015-12-09 2 views
0

Tables And what i need Я пытаюсь создать представление с 5 таблицами для школьного проекта. Заявление до сих пор выглядит следующим образом:Попробуйте присоединиться к нескольким таблицам

CREATE view lager AS 
Select produkt.produktNumber, 
(SELECT buyphone.lagerNummer FROM bluecity.buyphone) AS 'Lagernummer', 
produkt.produktBrand, 
produkt.produktModel, 
sizeMemory.memoryInformation, 
(SELECT buyphone.colorValue FROM bluecity.buyphone) AS 'Farve', 
(SELECT buyphone.conditionValue FROM bluecity.buyphone) AS 'Stand' 
FROM bluecity.produkt 
JOIN bluecity.sizememory ON bluecity.produkt.memorySize = bluecity.sizememory.memorySize 
JOIN bluecity.color ON buyphone.colorValue = bluecity.color.colorInformation 
JOIN bluecity.conditions ON buyphone.conditionValue = bluecity.conditions.conditionInformation 

Но я не могу получить соединения справа. Основная таблица bluecity.produkt должна присоединить некоторые ее значения к другой таблице. Первое соединение с размером памяти работает, но это все. Основная таблица должна содержать целочисленное значение, которое рисует значение из объединенной таблицы, если это имеет смысл.

Помощь очень полезна, если вы можете объяснить, почему и как это было бы лучше, поэтому я могу попытаться понять.

Добавлено создать STMT

CREATE DATABASE bluecity; 


CREATE TABLE bluecity.Member 
(memberNumber INTEGER(5) NOT NULL, 
firstName VARCHAR(50) NOT NULL, 
lastName VARCHAR(25) NOT NULL, 
address VARCHAR(40) NOT NULL, 
zipNumber INTEGER(4) NOT NULL, 
phoneNumber INTEGER(8) NOT NULL, 
email VARCHAR(35) NOT NULL, 
statusValue INTEGER(1) NOT NULL, 
FOREIGN KEY (zipNumber) REFERENCES bluecity.zipCode(zipNumber), 
FOREIGN KEY (statusValue) REFERENCES bluecity.ID(statusValue), 
PRIMARY KEY (memberNumber)); 

CREATE TABLE bluecity.ID 
(statusValue INTEGER(1) NOT NULL, 
information VARCHAR(19) NOT NULL, 
PRIMARY KEY (statusValue)) 



CREATE TABLE bluecity.zipCode 
(zipNumber INTEGER(4) NOT NULL, 
city VARCHAR(32) NOT NULL, 
PRIMARY KEY (zipNumber)); 

CREATE TABLE bluecity.Produkt 
(produktNumber INTEGER(5) NOT NULL, 
produktType VARCHAR(30) NOT NULL, 
produktBrand VARCHAR(30) NOT NULL, 
produktModel VARCHAR(30) NOT NULL, 
memorySize INTEGER(2) NOT NULL, 
FOREIGN KEY (memorySize) REFERENCES bluecity.sizeMemory(memorySize), 
PRIMARY KEY (produktNumber)); 

CREATE TABLE bluecity.Conditions 
(conditionValue INTEGER(1) NOT NULL, 
conditionInformation VARCHAR(13) NOT NULL, 
PRIMARY KEY (conditionValue)); 

CREATE TABLE bluecity.sizeMemory 
(memorySize INTEGER(1) NOT NULL, 
memoryInformation VARCHAR(5) NOT NULL, 
PRIMARY KEY (memorySize)); 

CREATE TABLE bluecity.Color 
(colorValue INTEGER(2) NOT NULL, 
colorInformation VARCHAR(20) NOT NULL, 
PRIMARY KEY (colorValue)); 

CREATE TABLE bluecity.Prices 
(conditionValue INTEGER(1) NOT NULL, 
produktNumber INTEGER(5) NOT NULL, 
price INTEGER(6) NOT NULL, 
FOREIGN KEY (conditionValue) REFERENCES bluecity.Conditions(conditionValue), 
FOREIGN KEY (produktNumber) REFERENCES bluecity.Produkt(produktNumber), 
PRIMARY KEY (conditionValue, produktNumber)); 

CREATE TABLE bluecity.buyPhone 
(IMEI Integer(15) NOT NULL, 
lagerNummer INTEGER(7) NOT NULL, 
produktNumber INTEGER(5) NOT NULL, 
colorValue INTEGER(2) NOT NULL, 
conditionValue INTEGER(1) NOT NULL, 
FOREIGN KEY (produktNumber) REFERENCES bluecity.Produkt(produktNumber), 
FOREIGN KEY (colorValue) REFERENCES bluecity.Color(colorValue), 
FOREIGN KEY (conditionValue) REFERENCES bluecity.Conditions(conditionValue), PRIMARY KEY (IMEI)); 
+0

Сколько записей записано в подзапросах (в фигурных скобках)? – 0xCAFEBABE

+0

Ну, я думаю, что он возвращает только один. –

+0

Работаете ли вы с несколькими базами данных? В противном случае, почему кепп упоминает имя базы данных. Кроме того, ваш вопрос неясен. Если вам нравится, подумайте о следующем простом двухэтапном курсе действий: 1. Если вы еще этого не сделали, предоставьте правильные инструкции CREATE и INSERT (и/или sqlfiddle), чтобы мы могли легче реплицировать проблему. 2. Если вы еще этого не сделали, укажите желаемый набор результатов, соответствующий информации, представленной на шаге 1. – Strawberry

ответ

0
 Select DISTINCT produkt.produktNumber AS 'Produkt #', 
     buyphone.lagerNummer AS 'Lager #', 
     produkt.produktBrand AS 'Mærke', 
     produkt.produktModel AS 'Model', 
     sizeMemory.memoryInformation 'Hukommelse', 
     color.colorInformation AS 'Farve', 
     conditions.conditionInformation AS 'Stand', 
     prices.price AS 'Pris' 
     FROM bluecity.buyphone 
     JOIN bluecity.produkt ON bluecity.buyphone.produktNumber = bluecity.produkt.produktNumber 
     JOIN bluecity.sizememory ON bluecity.produkt.memorySize = bluecity.sizememory.memorySize 
     JOIN bluecity.color ON bluecity.buyphone.colorValue = bluecity.color.colorValue 
     JOIN bluecity.conditions ON bluecity.buyphone.conditionValue = bluecity.conditions.conditionValue 
     JOIN bluecity.prices ON bluecity.produkt.produktNumber = bluecity.prices.produktNumber 
     JOIN bluecity.prices p1 ON bluecity.buyphone.conditionValue = bluecity.prices.conditionValue 

Я получил это работает, как это, ТНХ ребята. Редактировать: все еще были некоторые недостатки, которые, как я думаю, теперь исправлены.

+0

Эти дозы не имеют смысла JOIN bluecity.buyphone ON bluecity.buyphone.lagerNummer = bluecity.buyphone.lagerNummer JOIN bluecity.buyphone u2 ON bluecity.buyphone.colorValue = bluecity.buyphone.colorValue JOIN bluecity.buyphone u3 ON bluecity.buyphone.conditionValue = bluecity.buyphone.conditionValue Вы не присоединяетесь к внешнему ключу Попробуйте добавить больше записей в таблицу buyphone, и это не будет работать – HansP

+0

Вы были правы, и я узнал, что мне нужно использовать настольный телефон в качестве основного стола. Все работает так, как должно это сделать, хотя может быть что-то не так с ним. –

0

Вы должны также сделать объединение на bluecity.buyphone вместо того, чтобы как подзапросы в вашем выборе, так как это связанно с вашей Produkt таблицы. Что-то вроде этого:

Select produkt.produktNumber, 
buyphone.lagerNummer AS 'Lagernummer', 
produkt.produktBrand, 
produkt.produktModel, 
sizeMemory.memoryInformation, 
buyphone.colorValue AS 'Farve', 
buyphone.conditionValue AS 'Stand' 
FROM produkt 
JOIN buyphone ON buyphone.produktNumber = produkt.produktNumber 
JOIN sizememory ON produkt.memorySize = sizememory.memorySize 
JOIN color ON buyphone.colorValue = color.colorInformation 
JOIN conditions ON buyphone.conditionValue = conditions.conditionInformation 
+0

Я пробовал это, но я не могу заставить его присоединиться к proberly, я не уверен, что я должен присоединиться к нему, хотя? –

+0

Близко к тому, что мне нужно, хотя вы дали мне инструменты, чтобы пройти через него. Спасибо большое. –

+0

Не могли бы вы объяснить, что вы пытаетесь сделать тогда? – HansP

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