我知道我可以在表的同一列上使用OR SQL运算符,如下所示:
SELECT * FROM users WHERE last_name = 'Peter' OR last_name = 'Smith';
但我现在的情况是我正在尝试在两个不同的表(不同的列名)上使用OR运算符。那可能吗?如何在SQL查询中实现该目标?
是的,有一个外键列将一个表链接到另一个表的主键列。
提前感谢您的帮助。
答案 0 :(得分:1)
如果不同表中的字段具有相同的名称,则可以使用tablename.fieldname
区分它们,如果表具有相同的名称(在不同的模式中),则可以使用{{1}进一步限定名称}。
当然,schemaname.tablename.fieldname
和WHERE
子句中引用的所有表都应包含在SELECT
子句中。
注意:如果某个表在FROM
中有别名,则应使用别名而不是表名。
您无法在FROM
中未包含的表格中显示(或在WHERE条件等中使用...)字段;但是,您可以在这些表上使用子查询。
示例:
FROM
或
...
FROM table1 AS t1
WHERE t1.field1 = somevalue
OR EXISTS (
SELECT *
FROM table2 AS t2
WHERE t2.somefield = someothervalue
)
...
...
答案 1 :(得分:0)
是的,有可能
SELECT users.* FROM users,countries WHERE users.last_name = 'Peter' OR countries.name = 'mexico' AND users.idCountry=countries.id;