具有相同ID但行名称不同的多行

时间:2016-03-29 22:16:08

标签: php mysql rows

我有两个表,列数和列名不同。

标签a:

ID   nome       cognome    messaggio  testo      orario     ip
---  ---------  ---------  ---------  ---------  ---------  ---------
1    a          a          a          a          a          127  
2    b          b          b          b          b          111
3    a          a          tt         qqq        h          127     

标签b:

id   nome       cognome    email
---  ---------  ---------  ---------
1    t          t          t

我想像我一样在两个表中使用%t%和两个表的正确发布者所有列吗?

打印:

ID   nome       cognome    messaggio  testo      orario     ip         email
---  ---------  ---------  ---------  ---------  ---------  ---------  ---------
1    t          t          null       null       null       null       t
3    a          a          tt         qqq        h          127        null

1 个答案:

答案 0 :(得分:0)

你正在寻找这样的东西:

    SELECT ID as id, nome, cognome, messaggio, testo, orario, ip, NULL AS email 
      FROM `tabA` 
     WHERE nome LIKE '%t%' OR cognome LIKE '%t%'  OR messaggio LIKE '%t%'  OR testo LIKE '%t%'

 UNION ALL

    SELECT id as id, nome, cognome, NULL as messaggio, NULL AS testo, NULL as orario, NULL AS ip, email 
      FROM `tabB` 
     WHERE nome LIKE '%t%' OR cognome LIKE '%t%'  OR email LIKE '%t%'

sqlFiddle demo

UNION用于将多个SELECT语句的结果合并到一个结果集中。 UNION删除重复的行,UNION ALL返回所有行。每个SELECT语句的列号必须相等,因此我指定了每个SELECT中的所有字段,为不存在的列设置了Null

请注意以上使用LIKE会严重影响效果。