mysql 左关联语法,MySQL-选择3个具有正确左连接语法的表

Hope you can help me with correct syntax of a SQL query (using MySQL 5.5.25).

I have 3 tables:

data

data_tmp

users

data table is empty - has it's own structure but no rows

data:

id | name | who

----------------

data_tmp:

id | cars | who

---------------

1 | lambo| 2

users

who | name |

------------

2 | john

My query is:

SELECT DISTINCT

users.name,

(SELECT count(id) FROM data WHERE who = 1) as number,

data_tmp.cars

FROM

users, data, data_tmp

WHERE

users.who = 2

AND data_tmp.who = 2

AND data.who = 2

This of course returns an empty result (there is no row that suits to all parameters because data is empty).

What I would like to achieve is:

users.name | number | data_tmp.cars |

-------------------------------------

john | 0 | lambo |

I am sure I have to - in some way - use LEFT JOIN but can't find correct syntax. Hope you can help me.

Kalreg

解决方案

give this a try (without using subquery)

SELECT a.name, b.cars, count(c.id) as number

FROM users a

INNER JOIN data_tmp b

on a.who = b.who

LEFT JOIN data c

on a.who = c.who AND

a.name = c.name

WHERE a.who = 2

GROUP BY a.name, b.cars

this works on different servers:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值