mysql select from T1,如果不在T2,则替换


mysql select from T1 if not in T2 else replace

所以mysql PDO查询我试图写必须从两个表和输出数组比较列。

  1. 如果表1
  2. 中输出数据为空
  3. 如果cell的值与table2相同,首先输出该值,然后输出所有其他值。

job table:

table1
|jobName|Name|
|job1   |John|
|job2   |John|
|job3   |John|
|jobABC |Jack|
|jobCCC |Jack|
|jobXYZ |Jack|

and day table:

table2
|day |jobName|Name|
|day1|       |John|
|day1|jobCCC |Jack|
|day2|job2   |John|
|day2|       |Jack|
|day3|jobXYZ |Jack|
|day3|job1   |John|

, John的输出应该是:

day1, job1, job2, job3
day2, job2, job1, job3
day3, job1, job2, job3

, Jack的输出应该是:

day1, jobCCC, jobABC, jobXYZ
day2, jobABC, jobCCC, jobXYZ
day3, jobXYZ, jobABC, jobCCC

谢谢!

我差点…有人愿意帮我吗?

http://sqlfiddle.com/!9/e5a510/12

SELECT 
  b.Day,
  COALESCE(a.Name, b.Name) AS Name, 
  COALESCE(a.JobName, b.JobName) AS JobName
FROM table1 a, table2 b
WHERE a.Name = b.Name

更新!

这是最终产品(我认为):

http://sqlfiddle.com/!9/e5a510/53

SELECT 
  b.Day,
  COALESCE(a.Name, b.Name) AS Name, 
  COALESCE(a.JobName, b.JobName) AS JobName
FROM table1 a, table2 b
WHERE a.Name = b.Name AND a.Name = 'Jack' 
ORDER BY   b.Day ASC, a.JobName = b.JobName DESC, a.JobName ASC