2017-07-26 34 views
2

对于我的问题的第一部分,我已经找到了一个老问题是相似的,有一个公认的答案,但解决方案不起作用 - >Search multiple tables for the same value搜索多个表的相同值,得到表,其中导致它来自

所以接受的答案说:

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

当我试图where子句是模糊的,我得到这个错误在

列“场”

我试图解决使用:

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

的解决上述错误,但结果是:从table_one不信邪,从table_two

所有条目我必须澄清,我的测试值找到'some_val'它存在table_one中,并不存在table_two

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

第二部分。

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

如何检查哪里,结果从何而来? ...哪里找到了'some_val'? (在table_two中table_two或两者)?

+1

使用找到有关union更多细节'union'用于进行查询,分享sqlfiddle你的表结构,我会根据您的结构,使查询 –

+0

你是对的...并且解决了这两个问题,因为我可以为每个联合添加一个指标:Ex(选择*,'table_one'作为found_on FROM ...等)UNION(SELECT *,'table_two'为found_on。 ..) – MTK

回答

2

您problem.You使用union可以在this link

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' 
相关问题