如何从2个不直接相关的表中选择列?

Osa*_*far 0 sql oracle

我有3张桌子A,B,C

表A.

TABLE_NAME|table_number
   soho        20  
   foho        30
   joho        40
Run Code Online (Sandbox Code Playgroud)

表B

TABLE_ID | TABLE_NAME
    1         soho
    2         foho
    3         joho
Run Code Online (Sandbox Code Playgroud)

表C.

 TABLE_ID | TABLE_VALUES
      1           xx
      1           yy
      2           hh
      3           no
      3           bb
Run Code Online (Sandbox Code Playgroud)

我想要做的是传递table_name作为:paramterfrom和得到table_values表c,如果我通过soho

TABLE_NAME| TABLE_VALUES
    SOHO           xx
    SOHO           yy
Run Code Online (Sandbox Code Playgroud)

这是我的尝试,但我得到了table_value所有表格

select a.table_name , c.table_value
from a , b , c 
where a.table_name= :myParamter
and 
b.table_id= c.table_id
Run Code Online (Sandbox Code Playgroud)

我的查询输出是这样的

ABLE_NAME| TABLE_VALUES
  SOHO           xx
  SOHO           yy
  SOHO           hh
  SOHO           no
  SOHO           bb
Run Code Online (Sandbox Code Playgroud)

Sam*_*Sam 5

select b.table_name , c.table_value
from b inner join c 
on
b.table_id= c.table_id
where  b.table_name= :myParamter
Run Code Online (Sandbox Code Playgroud)

  • 这应该是来自b.table_id = c.table_id的b inner join c,其中b.table_name =:myParamter`是为了便于阅读.表名不是如何连接表c的标准. (2认同)