2017-01-10 41 views
0

我試圖從內聯接的三個不同的表中拉出來,但每當我運行它,結果只顯示每列的每個屬性的標題。有誰知道如何解決這個問題,並感謝您的任何幫助。mySQL Multiple Statement in 1 Statement Only顯示屬性標題

select dvd.dvd_id, dvd.dvd_title, rentalprices.daily_charge, dvd.no_of_discs, dvd.age_rating, publisher.publisher_name, distribution_company.company 
From dvd 
    inner join rentalprices 
     on dvd.rental_rate_id=rentalprices.daily_charge 
    inner join publisher 
     on dvd.publisher_id=publisher.publisher_name 
    inner join distribution_company 
     on dvd.dist_comp_id=distribution_company.company; 

以及如果所有內部連接都更改爲左連接租賃價格工作,但其他人留空。

+3

你確定你想要一個內部連接嗎?當你進行連接時會發生什麼?我覺得'dvd.publisher_id'匹配'publisher.publisher_name'似乎很奇怪。你確定你有正確的列嗎? – dstudeba

+2

原因是沒有結果行。 – EJP

+0

@dstudeba指出,它看起來像你加入的列有點奇怪。不知道你的架構師是誰,但通常你想讓FK和PK具有相同的名稱。例如:'on dvd.publisher_id = publisher.publisher_id' ..我的意思是除非你的publisher_id是例如'foo'而你的publisher_name是也'foo',但這通常是不好的做法。 – ballBreaker

回答

0

如果說,「除了這一點,如果所有的內連接更改爲左聯接租金價格的作品,但其他人都離開了空」,比你已經給了回答你的問題:

如果像你寫道,像dvd left join publisher on dvd.publisher_id = publisher.publisher_name這樣的陳述只給出null-表publisher表的屬性值,那麼這意味着dvd.publisher_id值都不匹配任何publisher.publisher_name。如果你使用內部連接,結果必須是空的,因爲沒有任何匹配。

請注意,任何進一步的內連接或左連接都不會向結果添加任何行;如果其中一個表或連接參與其他內部連接的結果或者作爲左連接的lhs爲空,則結果保持爲空。

所以:看看使用的屬性的語義/內容。