我衷心希望我在标题中输入的内容不会引起混淆。我也希望我能正确解释。简而言之,我有3个表,如下所示:
TABLE_A
id *
value
TABLE_B
id *
other_id
TABLE_C
other_id *
name_of_product
我想基于TABLE_A和TABLE_B之间的匹配ID,以及TABLE_B和TABLE_C之间的匹配ID,从TABLE_A中提取多个值,从TABLE_C中提取一个值。我尝试搜索此内容,但尚未找到与我的问题直接相关的任何内容。我已经尝试过此SQL代码,但我知道它是错误的:
SELECT
TRIM(id) primary_key_value,
a.value name,
c.name_of_product product
FROM TABLE_A a, TABLE_C c
JOIN TABLE_A t1 ON t1.id = a.id
JOIN TABLE_B t2 ON t2.other_id = c.other_id
WHERE c.name_of_product = 'widget'
任何帮助将不胜感激。如果上面的代码不明显,我应该声明自己是SQL新手。谢谢。
答案 0 :(得分:2)
似乎您需要两个join
:
SELECT TRIM(a.id) as primary_key_value,
a.value as name,
c.name_of_product as product
FROM TABLE_A a JOIN
TABLE_B b
ON b.id = a.id JOIN
TABLE_C c
ON c.other_id = b.other_id
WHERE c.name_of_product = 'widget'