我嘗試做別的什麼沒有ID:MySQL的左連接與表B中沒有比賽,對這樣的表A
表A
NameID | name | other rows
1 | name1
2 | nameA
3 | nameX
表B
UniqueID | NameID | other rows
1 | 1
2 | 2
3 | 6
4 | 17
5 | 22
沒有我想做一個這樣的選擇:
SELECT tablea.ID, tablea.name, tableb.*
FROM tablea
LEFT JOIN tableb ON tablea.ID = tableb.ID
WHERE
tablea.ID != '0'
我現在搜索ID和名稱。
我得到allways的名字,但不是allways的ID,只有當ID也在表B中。爲什麼?
我的結果是這樣的:
ID | name
1 | name1
2 | nameA
NULL | nameX
我有這樣的情況: 我在表A片(有姓名,DATAS等)。在表B中,我有 這些電影的收視率。現在我使用表單進行搜索,並希望看到所有電影的評分不全,或者根本沒有收視率,或者任何電影,儘管它有或沒有評級。
在TABLE A(所有電影)上加上一個LEFT JOIN,並且加上ON-Condition I搜索電影是否有評級(是或不在表B中)。 我的結果讓我知道電影的名字,總之。但是,如果movieID不在表B中(=沒有記錄評級),我不會在結果中獲得表A中的電影ID。 因此,不是我的整個結果是NULL只有movieID,我可以從這個電影的表A中拉出任何其他數據,但不是ID。
爲什麼?
如果ID位於ON期,是不是可以要求tablea.ID?
WHERE正在將LEFT JOIN轉換爲INNER JOIN ..您應該將WHERE語句移動到ON子句 –
我正確理解WHERE是用於tablea還是ON用於tableb我將它與? WHERE如何將LEFT加入INNER JOIN? –
你在'tablea.ID = tableb.ID'中加入了什麼'ID'? 'NameID'?/ –