UNION ALL 和从 2 个表中选择的项目

UNION ALL and items selected from 2 tables

我将 UNION ALL 用于 select 项 2 table 秒,似乎 select 仅先 table 项:

SELECT id_shk,
       shk_fname,
       shk_lname,
       shk_tran,
       country_code,
       nationality,
       shk_info,
       shk_title
FROM   sheikh_tbl
WHERE  ( quoran = "1"
          OR baramijaudio = "1"
          OR anachid = "1"
          OR douaedikr = "1"
          OR dorousse = "1" )
       AND ( shk_fname LIKE "%oyoun%"
              OR shk_mname LIKE "%oyoun%"
              OR shk_lname LIKE "%oyoun%" )
UNION ALL
SELECT wtitle,
       NULL,
       NULL,
       NULL,
       NULL,
       NULL,
       NULL,
       NULL
FROM   wall
WHERE  wtitle LIKE "%oyoun%"
LIMIT
0, 5 

对此有什么建议吗?


我创建了一个测试tables,这是我说的结果,第二个table的字段没有显示:

所以如果我回显 $name,它不会显示任何东西

这是 sqlfiddle 中的测试:http://sqlfiddle.com/#!2/3a161/1/0

使用 union,第一个 select 的列名称也用于其他 select(s)。 如果您需要知道来自 table 行来自向每个 select:

添加一个伪列
SELECT
     'table1' tablename,
     fieldx
FROM
     table1

UNION ALL

SELECT
     'table2',
     fieldy
FROM
     table2

创建并集时,您将从所有子查询中获取行数据。但是一个列只能有一个列名,所以联合中的列名取自第一个子查询。

如果你想让它更清楚,你可以给一个别名,表明它可以是任何一列。

select id_shk AS id_shk_or_wtitle,
       shk_fname,
       shk_lname,
       shk_tran,
       country_code,
       nationality,
       shk_info,
       shk_title
FROM   sheikh_tbl
UNION
SELECT wtitle,
       NULL,
       NULL,
       NULL,
       NULL,
       NULL,
       NULL,
       NULL
FROM   wall