我有一個表Languages
它存儲在Persons
表中每個人存儲的語言能夠說話,然後我有一個表Homework
它存儲了每個人必須做的所有功課,但與一個語言。我能夠選擇作業人員1必須爲語言1(左連接)做的事情,但也希望能夠在語言人員1能夠談話的相同查詢中選擇。有人能給我一個提示如何做到這一點?對語言的左連接會影響結果,因爲這會與家庭作業表上的語言混淆。簡單的SQL查詢問題
語言和人是多方面的,家庭作業和人員也是如此。
這一工程,但得到螺釘,當我添加第二個left join
:
SELECT p.id, l.id, h.id
FROM Persons AS p
LEFT JOIN Homework AS h ON h.person_id = p.id
#LEFT JOIN Languages AS l ON l.person_id = p.id #Screws the result multipliying by the number of available languages
WHERE p.id = 1
AND h.language_id = 1
我想上面的查詢相結合,以下內容:
SELECT *
FROM languages
WHERE person_id=1
請問您能否更詳細地描述一下,第二次加入會如何影響您的結果?你得到的一個例子,你想得到什麼會很好。 – socha23
你可以嘗試勾勒出你想要的表格嗎? – fluent
嗨,thx很多答案。我無法爲您提供結果,因爲這是我從一個更復雜的問題中得到的簡化問題。問題是,如果你在Languages表中有3種語言,那麼最後的左連接將使結果成爲3倍「大」。 – user846226