
SELECT *
FROM Computer ;

SELECT *
FROM Device ;

SELECT *
FROM DeviceType ;

SELECT *
FROM Manufacturer ;

SELECT 'trying to use two tables with no proper join...';

SELECT *
FROM Computer, Device ;

SELECT 'simple inner join query syntax' ;

SELECT *
FROM Computer, Device
WHERE Computer.id = Device.comp ;

SELECT 'inner join query syntax' ;

SELECT *
FROM Computer AS c INNER JOIN Device AS d
ON c.id = d.comp ;

SELECT 'left join query syntax, note that you do not have to use AS for aliases!' ;

SELECT *
FROM Computer c LEFT JOIN  Device d
ON c.id = d.comp ;

SELECT 'right join query syntax' ;

SELECT c.*, d.*
FROM Computer AS c RIGHT JOIN  Device AS d
ON c.id = d.comp ;

SELECT 'more complicated join' ;

SELECT c.hname, t.name, t.descr, m.name
FROM Computer AS c, Device AS d, Manufacturer AS m, DeviceType as t
WHERE c.id = d.comp AND d.brand = m.id AND t.id = d.type
ORDER BY c.hname, m.name, t.name ;

SELECT 'another way to do it' ;

SELECT c.hname, t.name, t.descr, m.name
FROM Computer AS c INNER JOIN Device AS d ON c.id = d.comp
  JOIN Manufacturer AS m ON d.brand = m.id
  JOIN DeviceType as t ON t.id = d.type
ORDER BY c.hname, m.name, t.name ;

SELECT 'a slight adjustment' ;

SELECT c.hname, t.name, t.descr, m.name
FROM Computer AS c INNER JOIN Device AS d ON c.id = d.comp
  JOIN Manufacturer AS m ON d.brand = m.id
  JOIN DeviceType as t ON t.id = d.type
WHERE t.name IN ( 'cpu', 'gpu' ) 
ORDER BY c.hname, m.name ;

