假设我有两张桌子。下表如下:
tableA

第二表tableB

现在,我想写一个查询,它将加入以上两个表中的任何一个名称或电子邮件或电话。
类似于:
SELECT * FROM tableA
LEFT JOIN tableB
ON
(tableA.name_A = tableB.name_B OR tableA.email_A = tableB.email_B OR tableA.phone_A = tableB.phone_B)它应该会产生一张这样的桌子

如果你注意到,
name.
上的tableA和tableB之间的行
当我试图执行相同的查询时,虽然我收到了一个错误,指出如果没有连接两侧字段相等的条件,就不能使用左外部联接。
我正在使用BigQuery。帮帮忙,干杯
发布于 2021-07-27 06:08:07
试试INNER JOIN
SELECT * FROM tableA
INNER JOIN tableB
ON
(tableA.name_A = tableB.name_B OR tableA.email_A = tableB.email_B OR tableA.phone_A = tableB.phone_B)或CROSS JOIN
SELECT * FROM tableA
CROSS JOIN tableB
WHERE
tableA.name_A = tableB.name_B
OR tableA.email_A = tableB.email_B
OR tableA.phone_A = tableB.phone_B或UNION DISTINCT
SELECT * FROM tableA
LEFT JOIN tableB
ON tableA.name_A = tableB.name_B
UNION DISTINCT
SELECT * FROM tableA
LEFT JOIN tableB
ON tableA.email_A = tableB.email_B
UNION DISTINCT
SELECT * FROM tableA
LEFT JOIN tableB
ON tableA.phone_A = tableB.phone_B发布于 2021-07-27 06:04:28
你能用括号试试吗?
SELECT * FROM tableA
LEFT JOIN tableB
ON
(tableA.name_A = tableB.name_B) OR
(tableA.email_A = tableB.email_B) OR
(tableA.phone_A = tableB.phone_B)https://stackoverflow.com/questions/68539605
复制相似问题