我有一个查询可以完成这项工作,但我需要获取 location_name,而不是 trans_inventory
(这是位置的 ID)。
这个正在努力获取 id
SELECT *
FROM {TABLE}
WHERE trans_product = 646
ORDER BY trans_date2 DESC Limit 1
但我想知道我是否可以这样做,以某种方式嵌入位置表,我已经尝试过,但下面不起作用
SELECT *, site_location.location_name
FROM site_trans
cross join
(select *
From site_location)
site_location
WHERE trans_product=646 ORDER BY trans_date2 DESC Limit 1
最佳答案
JOIN 中的 sl.location 必须是 site_location 位置 id 字段名称 - 我使用了 locastion_id,但它也可能是 id。我使用 LEFT JOIN 来避免在没有匹配的位置 id 的情况下丢失 site_trans。
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
关于mysql - 带有嵌入表的动态 SQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22532355/