我有2个表,它们的列名相同,但数据不同。考虑以下:
表1结构:
id, sid, text
1, 1, 'Hello World'
2, 1, 'Hello World again'
3, 2, 'Hw...'
4, 2, 'Hw2...'
和表2:
id, sid, text
1, 1, 'Hello World 2'
2, 1, 'Hello World again 2'
3, 2, 'Hw2...'
4, 2, 'Hw22...'
我想基于“ sid”查询“ Table1”。例如,如果sid为1,那么我应该从“ Table1”获得所有列,而从“ Table2”获得只有“ text”列。像这样:
id, sid, text, text
1, 1, 'Hello World', 'Hello World2'
2, 1, 'Hello World again', 'Hello World again 2'
我正在尝试INNER JOIN,但我得到了拒绝:
SELECT Table1.*, Table2.text FROM Table1 INNER JOIN Table2 ON Table1.sid = Table2.sid WHERE Table1.sid = 1;
但是我得到重复的行!我该如何解决?我知道有很多类似的问题,但是找不到这个问题。
您必须使用sid和id标识正确的行
SELECT
t1.*, t2.text
FROM
Table1 t1
INNER JOIN
Table2 t2 ON t1.sid = t2.sid AND t1.id = t2.id
WHERE
Tt1.sid = 1;
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句