Mysql 使用SELECT-JOIN从同一个表中获取两个值
我有三张桌子——材料、活动和单元。 物料和活动表都通过包含Mysql 使用SELECT-JOIN从同一个表中获取两个值,mysql,sql,Mysql,Sql,我有三张桌子——材料、活动和单元。 物料和活动表都通过包含unit\u id属性与units表相关。如何通过单个查询同时获取活动单位和物料单位 这是我当前的查询: SELECT u.username, m.name, a.name, un.name FROM users u JOIN materials m ON (m.id = u.material_id) JOIN activities a ON (a.id = u.activity_id) JOIN units un ON (un.id =
unit\u id
属性与units表相关。如何通过单个查询同时获取活动单位和物料单位
这是我当前的查询:
SELECT u.username, m.name, a.name, un.name
FROM users u
JOIN materials m
ON (m.id = u.material_id)
JOIN activities a
ON (a.id = u.activity_id)
JOIN units un
ON (un.id = m.unit_id OR un.id = a.unit_id)
但是我只得到一个单位,我想得到材料的单位和活动的单位。如何实现这一点?加入
units
表两次
SELECT u.username,
m.name as m_name, unm.name as m_unit,
a.name as a_name, una.name as a_unit
FROM users u
JOIN materials m ON m.id = u.material_id
JOIN activities a ON a.id = u.activity_id
JOIN units unm ON unm.id = m.unit_id
JOIN units una ON una.id = a.unit_id
加入
单位
表两次
SELECT u.username,
m.name as m_name, unm.name as m_unit,
a.name as a_name, una.name as a_unit
FROM users u
JOIN materials m ON m.id = u.material_id
JOIN activities a ON a.id = u.activity_id
JOIN units unm ON unm.id = m.unit_id
JOIN units una ON una.id = a.unit_id
您可以使用子查询进行此操作,它在以下情况下非常方便:
SELECT u.username,
(SELECT name FROM m WHERE m.id = u.material_id),
(SELECT name FROM a WHERE a.id = u.activity_id)
FROM users
您可以使用子查询进行此操作,它在以下情况下非常方便:
SELECT u.username,
(SELECT name FROM m WHERE m.id = u.material_id),
(SELECT name FROM a WHERE a.id = u.activity_id)
FROM users