我需要一些帮助来进行查询以从一个表中获取一列,从另一个表中获取另一列。
Table 1
Id column1
=== =======
1 text1
2 text2
3 text3
Table 2
Id column2 table1.Id
=== ======= =========
1 text1 2
2 text2 3
我需要结果
table1.Id table1.column1 table2.column2
========= ============== ==============
1 text1 null
2 text2 text2
3 text3 text3
我需要table1中的第1列和表2中基于table1的第2列。我需要获取table1中记录的column2值。任何人都可以帮我吗?。
我试过了
SELECT table1.column1 , table2.column2
FROM table1
INNER JOIN table2
ON table1.Id = table2.table1.Id
ORDER BY table.Id;
我需要来自table1的所有记录,但是通过上面的查询,我获得了更多的记录。
由于某种原因,我获得的记录超出预期,我在table1中有10条记录,我应该只得到10及其对应的第2列值,但我得到的记录更多。我希望记录表1包含相同的记录
答案 0 :(得分:0)
请尝试使用以下代码段
SELECT table1.column1 , table2.column2
FROM table1
LEFT JOIN table2
ON table1.Id = table2.table1.Id
--ON table1.Id = table2.[table1.Id] -- Also try with this
ORDER BY table1.Id;
答案 1 :(得分:0)
您应该尝试LEFT OUTER JOIN。
答案 2 :(得分:0)
试试这个:
SELECT table1.column1 , table2.column2
FROM table1
LEFT JOIN table2
ON table1.Id = table2.table1.Id
ORDER BY table1.Id ASC;
答案 3 :(得分:0)
抱歉我的英文不好,如果您想要与主要密钥和foriegn密钥匹配的记录,请使用INNER JOIN
这样的查询
SELECT t1.column1, t2.column2
FROM tab1 t1 INNER JOIN tab2 t2
ON (t1.id = t2.tab1Id) ORDER BY t1.id
但是如果你想要所有与primary和foriegn密钥匹配或匹配不匹配的记录,你应该使用LEFT JOIN
这样的查询
SELECT t1.id, t1.column1, t2.column2
FROM tab1 t1 LEFT JOIN tab2 t2
ON (t1.id = t2.tab1Id) ORDER BY t1.id