因此该代码具有多个join语句,我需要添加的只是一个where子句,该子句检查一个值。我需要参考的表未在包含多个联接的From语句中使用。无论如何,有没有添加常规FROM语句而不会破坏JOINS
SELECT D.data
H.otherData
FROM
Dada AS D
JOIN Haha AS H
ON D.ID = H.ID
WHERE
C.Value = x --This is what I want to do. Can I add another from statement that doesn't affect the join statement
答案 0 :(得分:3)
如果不在某处包含C,则不可能。
您所说的等同于“列出此人被称为汤姆的所有国家/地区”
答案 1 :(得分:0)
您可以添加C
表,但该表必须带有JOIN
。也许您想要一个CROSS JOIN
,它是联接表与此新表C
的笛卡尔积,并且不需要任何条件(您可以使用WHERE
条件过滤结果)
SELECT D.data
H.otherData
FROM
Dada AS D
JOIN Haha AS H
ON D.ID = H.ID
CROSS JOIN C
WHERE
C.Value = x
在这种情况下,它与以下情况相同:
SELECT D.data
H.otherData
FROM
Dada AS D
JOIN Haha AS H
ON D.ID = H.ID
JOIN C
ON C.Value = x
如果要根据JOIN
中的值过滤第一个C
,则需要将条件放在WHERE
上的子查询中,例如IN
或EXISTS
。您的第一个JOIN
与该表C
之间必须有某种关联(一个列或一个表达式都共享),否则过滤就没有意义了。
例如:
SELECT D.data
H.otherData
FROM
Dada AS D
JOIN Haha AS H
ON D.ID = H.ID
WHERE EXISTS (SELECT 'value exists on table C' FROM C WHERE C.Value = D.data)