mysql - 将表与第二个表中的一个已知变量连接起来

标签 mysql sql join left-join

我的 SQL 查询有问题。

情况如下:

我有两个表,A 和 B。

表A:

---------------------------------------------
*| A.id  |  A.t_id  |  A.f_id  |  A.type    |*
---------------------------------------------
 |   1   |    32    |     3    |   Loading  |
 |   2   |    34    |     5    |  Discharge |
 |   3   |    32    |     3    |  Discharge |
---------------------------------------------

表B:

-----------------------
*| B.id  | B.shipid |*
-----------------------
 |   1   |    1     |
 |   2   |    1     |
 |   3   |    2     |
-----------------------

我需要 A 中的所有行,其中 A.type=Loading,A.t_id 为 B.id -> B.shipid=2 和 。到目前为止我的查询是:

SELECT *  FROM A, B WHERE  (A.type='Loading' AND B.shipid=2 AND A.t_id=B.id)

但这不会返回正确的记录(实际上没有),而数据应该适合查询。我的查询哪里出错了?

最佳答案

试试这个::

SELECT 
*  
FROM 
A
INNER JOIN B ON A.t_id=B.id

WHERE  A.type='Loading' AND B.shipid=2

关于mysql - 将表与第二个表中的一个已知变量连接起来,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14274702/

相关文章:

mysql - 如何编写mysql查询来实现以下类型的连接(Join based on value of a column)

java - HIbernate 标准别名未加入

mysql按天分区

php - 如何检查用户是否有权限查看文档

sql - Join 或 Where 子句方法在限制结果集方面是否更有效?

PHP Mysql - 导出整个数据库

python - 使用 pd.merge 复制 pd.concat

mysql - HSQL 中的大写

php - 使用 MYSQL 搜索内部序列化数据

mysql:将两列合并为两行