mysql - 从两个表中选择

标签 mysql sql inner-join

我需要从 2 个表中选择几列:

Tab1
| Col1 | Col2 | Col3

Tab2
| Col1 | Col4 | Col5

这是我的查询:

SELECT A.*,B.Col4 
FROM Tab1 A,Tab2 B 
WHERE A.Col1=B.Col1 
AND A.Col2=='XXX'
AND A.Col3>5;

然而,此查询以某种方式连接两个表并复制某些行。有什么问题吗?

预期的结果是这样的:

Tab3
| Col1 | Col2 | Col3 | Col4

最佳答案

你发的query没有问题,但是如果有问题

duplicates some rows

如您所述,然后使用 DISTINCT:

SELECT DISTINCT A.*, B.Col4 
FROM Tab1 A, Tab2 B 
WHERE A.Col1 = B.Col1 
AND A.Col2 = 'XXX'
AND A.Col3 > 5;

或其他 JOIN 语法:

SELECT DISTINCT A.*,B.Col4 
FROM Tab1 A 
INNER JOIN Tab2 B ON A.Col1 = B.Col1 
WHERE A.Col2 ='XXX'
  AND A.Col3 > 5;

关于mysql - 从两个表中选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12385638/

相关文章:

php - 如何绑定(bind)响应数据以在laravel 5中查看

sqlite - 在带有GROUP BY的UNION上进行内部联接是否应该在SQLite中花费几个小时?

sql - 将 ER 图转换为 SQL

sql - Postgresql:使用升序值更新 column1,具体取决于 column2 排序顺序

mysql - 为什么这个查询给出两个不同的结果?

mysql - INNER JOIN 表自身

MySQL 从列表(内联表)中查询所有存在的和不存在的条目

php - 这是对 MySQL 枚举数据类型的适当使用吗?

php - 为 Web 应用程序创建唯一的用户帐户

mysql - 如何提高静态网站的 WordPress GraphQL 服务器的效率