SQLinfo.ru - Все о MySQL Highload++ 2017

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 15.09.2017 17:11:55

anton0106
Участник
Зарегистрирован: 15.09.2017
Сообщений: 1

Вопрос по SQL

Начал изучать язык и решаю простенькие задачи.
Схема БД состоит из четырех таблиц:
Product(maker, model, type)
PC(code, model, speed, ram, hd, cd, price)
Laptop(code, model, speed, ram, hd, price, screen)
Printer(code, model, color, type, price)
Думаю,достаточно многие ее знают. Теперь к сути

ЗАДАЧА:Найдите производителей, которые производили бы как ПК
со скоростью не менее 750 МГц, так и ПК-блокноты со скоростью не менее 750 МГц.
Вывести: Maker

РЕШЕНИЕ МОЕ

SELECT maker
FROM (SELECT maker FROM PRODUCT INNER JOIN PC ON Product.model=PC.model WHERE type='PC' and speed >= 750
INTERSECT
SELECT maker FROM PRODUCT INNER JOIN Laptop ON Laptop.model=Product.model WHERE type='Laptop' AND speed >=750)

Выводит ошибку синтаксиса в закрытие скобок. Бился долго,но так и не понял как решать,посмотрел решение

РЕШЕНИЕ
SELECT maker
FROM (SELECT maker FROM PRODUCT INNER JOIN PC ON Product.model=PC.model WHERE type='PC' and speed >= 750
INTERSECT
SELECT maker FROM PRODUCT INNER JOIN Laptop ON Laptop.model=Product.model WHERE type='Laptop' AND speed >=750) X


Вопрос: Что же означает этот "X", прогуглил ничего не дало. Так же узнал что вместо X можно было написать AS "C' к примеру. Хотелось бы объяснения или выдержку из  пособия где про это объясняют.

Неактивен

 

#2 15.09.2017 17:50:28

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5269

Re: Вопрос по SQL

Каждая таблица в запросе должна иметь имя; подзапрос в части from - таблица; X или as X это псевдоним этой таблицы.

В mysql нет INTERSECT.

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson