在Mysql语句中的LEFT JOIN上返回了错误的id

时间:2014-01-19 17:27:03

标签: mysql left-join

我需要从这个MySql语句返回的结果中获取表sellers的id和时间戳以及所有其他列(不知道列名):

SELECT * FROM sellers a 
LEFT JOIN users b ON a.user_id = b.id 
LEFT JOIN country_types c ON a.country_type_id = c.id 
LEFT JOIN language_types d ON a.language_type_id = d.id 
WHERE a.email=?

卖家ID虽然设置不正确,因为users,country_types和language_types都具有值id。如何设置seller_id和seller_timestamp?我试过这个但不正确:

SELECT a.id seller_id, a.timestamp seller_timestamp, * FROM sellers a ...

3 个答案:

答案 0 :(得分:0)

在联接中,您无法以这种方式选择其他列:

SELECT a.id seller_id, a.timestamp seller_timestamp, * FROM sellers a...

您需要编写必需的列名。

答案 1 :(得分:0)

我不确定但尝试别名,例如:

a.id AS seller_id 

等等。

答案 2 :(得分:0)

你想要这个:

SELECT a.id as seller_id, a.timestamp as seller_timestamp, a.*, b.*, c.*, d.*
FROM sellers a 
LEFT JOIN users b ON a.user_id = b.id 
LEFT JOIN country_types c ON a.country_type_id = c.id 
LEFT JOIN language_types d ON a.language_type_id = d.id 
WHERE a.email=?