当没有信息时,SQL连接3个表空记录

时间:2014-03-19 16:17:23

标签: mysql sql

我很难理解我想要达到的目标:S - 抱歉我的英语

我有一个带有位置历史记录ID的产品表 我有一个包含位置ID和最后转移日期的历史记录表 我有一个位置名称

的位置表

表格:

**site_product**
product_id
product_name

**site_trans**
trans_id
trans_product - link the product
trans_inventory - for the location
trans_date2 - date when it was assigned

**site_location**
location_id
location_name

我使用PHP构建一个表来收集它正在工作的所有信息,并且我将所有列排序到该位置的一部分。

这是我的工作版BUT没有位置名称......(如果有帮助的话)

  

SELECT * FROM site_trans WHERE trans_product = product_id(例如659)ORDER BY   trans_date2 DESC限制1

它提供了位置ID号,但我想更进一步,获取位置名称见上文。如果有一个它什么都不做,所以离开。

问题:

如何将位置链接到此以使其工作?请。

有人可以点亮我如何做的选择吗?

(我在很多方面都是初学者,所以即使是开始讲课也会受到赞赏)

UPDATE1:  LIMIT 1是为最后一个位置设计的

2 个答案:

答案 0 :(得分:0)

兄弟,当你输入“LIMIT 1”时,你说你只需要1条记录,所以sgbd只会检索1行。

您还应该查看所有类型的联接:http://www.devmedia.com.br/inner-cross-left-rigth-e-full-joins/21016

使用左连接可能会丢失一些数据。

答案 1 :(得分:0)

SELECT s.*, sl.location_name
FROM site_trans AS s
LEFT JOIN site_location AS sl ON sl.location_id = s.location_id
WHERE s.trans_product=646 
ORDER BY s.trans_date2 DESC 
Limit 1

我有一些帮助,这是解决方案。谢谢大家。惊人的团队