在多个表中搜索相同的值,并获取结果来自哪个表

时间:2017-07-26 12:38:34

标签: mysql

对于我的问题的第一部分,我发现了一个类似的旧问题并且已经接受了答案,但解决方案不起作用 - > Search multiple tables for the same value

所以接受的答案是:

SELECT * FROM table_one, table_two WHERE field = 'some_val'

当我尝试过时,我遇到了这个错误

  

列'字段' in where子句不明确

我试图用以下方法解决这个问题:

SELECT
    *
FROM
    table_one,
    table_two
WHERE
    table_one.field = 'some_val'
OR table_two.field = 'some_val';

解决了上述错误但结果是:table_one和table_two中的所有条目都没有

我必须在我的测试中澄清找到&some;它存在于table_one中,不存在于table_two

所以这是我提问的第一部分。

第二部分。

假设第一部分有解决方案,问题的第二部分将是:

如何检查结果来自哪里? ......在哪里' some_val'已被发现? (在table_two中的table_one或两者中)?

1 个答案:

答案 0 :(得分:3)

使用union来解决您的问题。您可以在this link

中找到有关union的更多详细信息
SELECT
    table_one.col_1,
    table_one.col_2,
    'table_one' AS from_table
FROM
    table_one
WHERE
    table_one.field = 'some_val'
UNION
    SELECT
        table_two.col_1,
        table_two.col_2,
        'table_two' AS from_table
    FROM
        table_two
    WHERE
        table_two.field = 'some_val'