mysql - mysql连接三个表

标签 mysql join multiple-tables

我有三个表,其中包含供应商详细信息、服务和地点。所有这些都有一个公共(public)字段作为供应商 ID。

我想展示与供应商相关的服务和场所。

我尝试了一些连接,但没有得到结果。

我尝试过的其中一个是:

SELECT services.serviceId as Id, 
services.service_name as service_name,
services.entry_by as entry_by,
services.servicetypeId as servicetypeId, 
services.latitude as latitude,
services.longitude as longitude, 
services.active as active, 

vendorDetails.username, 
vendorDetails.emailId, 
vendorDetails.vendorAddress,
vendorDetails.vendorName,
vendorDetails.mobileno, 

venues.venueId as Id, 
venues.venue_name as venue_name, 
venues.entry_by as entry_by, 
venues.venuetypeId as venuetypeId, 
venues.latitude as latitude,
venues.longitude as longitude,
venues.active as active 

FROM `vendorDetails` v

inner join `venues` venue on v.vendorId = venues.venueId
inner join `services` s on v.vendorId  = s.vendorId

但它显示 services.serviceId 的错误为未知列。我检查了服务表中是否存在该列。

我怎样才能得到这个?谢谢..

最佳答案

实际上,您使用表别名作为表v s venue vendorDetails services field 分别。因此,相应的表名被替换为该特定查询的别名。因此原始表名变得未知。在 inner joinvenuesvenue on v.vendorId =venues.venueId 中,您将 vendorIdvenueId 进行比较,这将返回空结果集。请尝试以下查询

SELECT 
    s.serviceId as Id, 
    s.service_name as service_name,
    s.entry_by as entry_by,
    s.servicetypeId as servicetypeId, 
    s.latitude as latitude,
    s.longitude as longitude, 
    s.active as active, 

    v.username, 
    v.emailId, 
    v.vendorAddress,
    v.vendorName,
    v.mobileno, 

    venue.venueId as Id, 
    venue.venue_name as venue_name, 
    venue.entry_by as entry_by, 
    venue.venuetypeId as venuetypeId, 
    venue.latitude as latitude,
    venue.longitude as longitude,
    venue.active as active 

FROM 
    `vendorDetails` v

Inner Join
    `venues` venue on v.vendorId = venue.vendorId 
Inner Join 
    `services` s on v.vendorId  = s.vendorId

关于mysql - mysql连接三个表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38909943/

相关文章:

java - 在调用 getSingleResult() 方法时出现 java.lang.ClassCastException?

php - 难以从MySQL按升序显示数据

MySQL LEFT JOIN 在第二个表中具有可选值

php - Yii 范围 - 按相关模型过滤

MySQL - 从与第一个表匹配的第二个表中选择最后一条记录

mysql - 如何区分选择查询中两个表的相同字段名称?

php - mysql 多表分页

MySQL连接池和创建临时表

mysql - 内存不足 Mysql (MariaDB) 性能

使用 GROUP_CONCAT 连接中的 MySql 重复值