-1
我正在構建超級英雄數據庫。我想將每個單獨的表連接在一起,以便用戶可以搜索任何內容,而不必每次執行查詢時都要執行INNER JOIN。使用內部聯接的MySQL搜索結果
例如,用戶可以搜索超級英雄來自的漫畫系列,您只需更改SELECT和WHERE子句即可。
一個超級英雄的力量搜索時,這將返回一個好的結果:
SELECT sh.heroName, pwr.name FROM superhero sh
INNER JOIN superheroPower sh_pwr ON sh.id = sh_pwr.superheroID
INNER JOIN power pwr ON sh_pwr.powerID = pwr.id
WHERE sh.heroName = 'Superman';
這將返回一個空集:
SELECT sh.heroName, pwr.name FROM superhero sh
INNER JOIN superheroPower sh_pwr ON sh.id = sh_pwr.superheroID
INNER JOIN power pwr ON sh_pwr.powerID = pwr.id
INNER JOIN superheroAffiliation sh_aff ON sh.id = sh_aff.superheroID
INNER JOIN affiliation aff ON sh_aff.affiliationID = aff.id
INNER JOIN superheroComic sh_c ON sh.id = sh_c.superheroID
INNER JOIN comic c ON sh_c.comicID = c.id
INNER JOIN publisher pub ON c.publisherID = pub.id
INNER JOIN comicAuthor c_a ON c.id = c_a.comicID
INNER JOIN author a ON c_a.authorID = a.id
WHERE sh.heroName = 'Superman';
有沒有辦法與所有表的搜索數據庫中已經內部聯合在一起?我應該做一個LEFT JOIN或者一個不同類型的JOIN嗎?
使用左連接.. –
「所有表都已內連接」?是...定義一個包含所有連接的視圖。 '從視圖中選擇foo = bar' –
@MarcB,您好,請您告訴我們爲什麼查看會比查詢中的所有內部聯接更好? –