有没有办法在不运行两个查询的情况下执行选择以执行以下操作?获得" id"的第一个查询如果a列和第二个排队另一个表返回那个" id"匹配?
SELECT `name`
FROM `attributes`
INNER JOIN `attribute_vals`
ON `attributes`.`id`=`attribute_vals`.`attr_id`
WHERE `name`='weight'
感谢您的回答!
只是我想要实现的快速图形表示!
答案 0 :(得分:1)
对您的数据库设计做一些假设:
name
列位于attributes
表中,attr_id, name
组合是唯一的,val
表格中有attribute_vals
列。听起来你想要一个简单的连接,用属性表中的名称限制值表。
然后,您可以在单个查询中获取关联的attribute_vals
数据。
SELECT
`av`.`id`,
`av`.`attribute_id`,
`av`.`value`
FROM `attributes` AS `a`
INNER JOIN `attribute_vals` AS `av`
ON `a`.`id`=`av`.`attr_id`
WHERE `a`.`name`= 'weight'
答案 1 :(得分:0)
此查询可获取属性' weight'的所有属性值。这是你想要的吗?
select *
from attribute_vals
where attribute_id in (select id from attributes where name= 'weight');