在mysql中连接两个表时丢失数据?

时间:2014-05-07 19:03:51

标签: mysql sql

我甚至不确定如何问这个问题,所以请耐心等待。

我有两张桌子,会面和地点,他们是通过见面会的地方联系在一起的。和位置' id'

我正在使用此查询:

    $query = "SELECT * FROM meets LEFT JOIN locations ON locations.id=meets.loc ORDER BY date DESC";
$meets = mysqli_query($con, $query);
虽然它成功地加入了桌子,但我失去了会议的内容。因为它被地理位置覆盖了#id;'。所以我最终得到两个相同的条目' id'和' loc'。

有没有办法避免这种情况,因为我需要调用meet id?

4 个答案:

答案 0 :(得分:4)

不要选择*,选择您需要的列并使用as关键字重命名它们

SELECT locations.id as loc_id, meets.id as meets_id, ... FROM meets LEFT JOIN locations ON locations.id=meets.loc ORDER BY date DESC

...替换为您要选择的其他列以及可能的重命名列。

答案 1 :(得分:0)

您可以使用以下查询为locations.id设置别名:

SELECT meets.*, locations.id AS loc_id FROM meets LEFT JOIN locations ON locations.id=meets.loc ORDER BY date DESC

您可以添加locations中您可能还需要的任何其他列。您还可以进一步选择meet而不是meet.*

中的显式列

答案 2 :(得分:0)

您可以尝试使用SELECT meets.*, locations.id as locationId, locations.<row> as location<Row>, ...

答案 3 :(得分:0)

不确定语法是否完全相同,但在SQL Server中语法是:

SELECT m.*, l.id as LocationId 
FROM meets m
LEFT JOIN locations l
ON l.id=m.loc 
ORDER BY date DESC