如何比较两个不同的表的列和匹配的列从表一中获取所有行?

时间:2019-05-15 10:36:05

标签: sql sql-server sqlite

我正在比较两个表的单列和匹配的列获取所有行

select *
from t_registered_std_info
where t_registered_std_info.t_ds_name == attendance.std_name

3 个答案:

答案 0 :(得分:2)

您缺少参加表的人,还有一个=号,代表在何处。

SELECT * 
FROM t_registered_std_info 
INNER JOIN attendance 
    ON -- Please define the relation
WHERE t_registered_std_info.t_ds_name = attendance.std_name

答案 1 :(得分:0)

好像您想IN做另一张桌子:

select *
from t_registered_std_info
where t_registered_std_info.t_ds_name IN (select attendance.std_name from attendance)

答案 2 :(得分:0)

如果您希望“ table1”中的所有行都具有“ table2”中的匹配值,请使用left join

select *   -- you should list the columns you want here
from t_registered_std_info rsi left join
     attendance a
     on rsi.t_ds_name = rsi.std_name

注意:

  • 所有表引用都必须位于from查询的select子句中。您不能“只是”在任何地方引用表。
  • 用于相等性的SQL运算符是=,而不是==,尽管某些数据库确实可以识别后者。
  • from子句中组合多个表时,请使用显式JOIN语法。
  • 如果只希望从其中一个表中的列,则可以使用诸如existsin之类的替代方法。