MySQL在一个查询中获取多个列关联值

标签 mysql select field

我有 2 个表:

STEP
id 
value




SCALE
id 
s1
s2
s3
s4
s5
s6

现在 step.id 是 scale.s1、scale.s2、scale.s3 等的外键 我想从步骤中获取 scale.s1-s6 值。 我用嵌套选择编写了这个查询。是否可以通过一次选择获得此值?

SELECT (
    SELECT step.val FROM step, scale WHERE step.id = scale.s1 AND scale.id = 1) as v1,(
    SELECT step.val FROM step,scale WHERE step.id = scale.s2 AND scale.id = 1) as v2, (
    SELECT step.val FROM step,scale WHERE step.id = scale.s3 AND scale.id = 1) as v3, (
    SELECT step.val FROM step,scale WHERE step.id = scale.s4 AND scale.id = 1) as v4, (
    SELECT step.val FROM step,scale WHERE step.id = scale.s5 AND scale.id = 1) as v5, (
    SELECT step.val FROM step,scale WHERE step.id = scale.s4 AND scale.id = 1) as v6, (
    SELECT step.val FROM step,scale WHERE step.id = scale.s5 AND scale.id = 1) as v7 ;

最佳答案

只需多次加入步骤。这是前三个:

select s.id, s1.val as v1, s2.val as v2, s3.val as v3
from scale s
join step s1 on s.s1 = s1.id
join step s2 on s.s2 = s2.id
join step s3 on s.s3 = s3.id

关于MySQL在一个查询中获取多个列关联值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14780540/

相关文章:

java - 如何通过查询获取sqlite表中特定名称的数量

sql - 在Oracle SQL select查询中使用列引用以避免重新计算

mysql查询;获取具有所有给定用户的所有线程

Mysql查询: Getting all result in grid view

MySQL 错误代码 1005,尽管数据类型相同

javascript - 如何使用AJAX、PHP和MySQL实时发出通知?

javascript - 比较两个选择的选项,如果 value != id 则隐藏

java - 如何以编程方式读取 Java 接口(interface)?

mysql子查询结果作为字段

c++ - 是否可以将常规指针转换为指向类字段的指针