SQL JOINs with dummy rows

JOINs with dummy rows

BEGIN TRAN -- Transaction will be rolled back so as to avoid
           -- permanent changes

-- Dummy authors row
INSERT authors 
(au_id, au_lname, au_fname, phone, address, city, state, zip, contract)
VALUES 
('000-00-0000', '***No Current Author***',
'', 'NONE', 'NONE', 'NONE', 'XX', '99999', 0)


-- Dummy titles row
INSERT titles 
(title_id, title, type, pub_id, price, advance, royalty, ytd_sales,
notes, pubdate)
VALUES 
('ZZ9999', '***No Current Title***',
'NONE', '9999', 0.00, 0, 0, 0, 'NONE', '1900.01.01')


 -- Associate authors with no current titles to dummy title
INSERT titleauthor VALUES ('341-22-1782', 'ZZ9999', 0, 0)
INSERT titleauthor VALUES ('527-72-3246', 'ZZ9999', 0, 0)
INSERT titleauthor VALUES ('724-08-9931', 'ZZ9999', 0, 0)
INSERT titleauthor VALUES ('893-72-1158', 'ZZ9999', 0, 0)

-- Associate titles with no current author to dummy author
INSERT titleauthor VALUES ('000-00-0000', 'MC3026', 0, 0)

-- Now do a standard INNER JOIN
SELECT 
'Author'=RTRIM(au_lname) + ', ' + au_fname,
'Title'=title
FROM 
        authors AS A             -- JOIN conditions
        INNER JOIN titleauthor AS TA ON A.au_id=TA.au_id 
        INNER JOIN titles AS T ON t.title_id=TA.title_id
WHERE 
A.state <> 'CA'
ORDER BY 1

ROLLBACK TRAN    -- Undo changes