MYSQL 选择 : check if rowdata exists

标签 mysql sql select

在我的 SQL 查询中,我正在检查不同的参数。当每个表中都有插入的行程代码的数据时,不会发生任何奇怪的情况。但是,当一张表中没有数据时,我根本得不到任何数据。即使其他表有数据。所以我需要能够检查表中是否有数据,如果有,我需要选择。

SELECT roadtrip_tblgeneral.*,
GROUP_CONCAT(distinct roadtrip_tblhotels.hotel) as hotels,
GROUP_CONCAT(distinct roadtrip_tbllocations.location) as locations,
GROUP_CONCAT(distinct roadtrip_tbltransports.transport) as transports
FROM roadtrip_tblgeneral
INNER JOIN roadtrip_tblhotels
ON roadtrip_tblgeneral.id = roadtrip_tblhotels.tripid
INNER JOIN roadtrip_tbllocations
ON roadtrip_tblgeneral.id = roadtrip_tbllocations.tripid
INNER JOIN roadtrip_tbltransports
ON roadtrip_tblgeneral.id = roadtrip_tbltransports.tripid
WHERE roadtrip_tblgeneral.tripcode = :tripcode
GROUP BY roadtrip_tblgeneral.id

只有前面有GROUP_CONCAT的表才需要检查。我已经尝试过在其前面添加关键字 EXISTS。

提前致谢。

最佳答案

当两个表中至少有一个匹配项时,INNER JOIN 关键字将返回行。如果没有数据,则无法匹配,也许您想使用 LEFT JOIN 或 FULL JOIN。

关于MYSQL 选择 : check if rowdata exists,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16593145/

相关文章:

MySQL:如何从另一个表的列中选择数据

mysql - 将 SUM 函数与 SQL 连接一起使用

mysql - Doctrine:两个数据库中两个实体之间的关系

python - 请求中的条件

sql - Oracle SQL : clause Where : date_column=trunc(sysdate) result different to trunc(date_column)=trunc(sydate)

c# - 将数据流式传输到 sql server 数据库而不缓冲整个数据

mysql - 如何连接两个表,保留不满足 JOIN 条件的行?

c - 为什么用户的输入会在终端上回显?

arrays - 如何在 PostgreSQL 中使用数组作为参数进行递归选择

MySQL 计算多列上的不同值