我想从两个相同的表中获取相同的记录,但带有检查。
我有以下两个相同的表:
表_1
id | enc | first_name | last_name | address | city
1 | 1001 | John | Doe | abc |
表_2
id | enc | first_name | last_name | address | city
1 | 1001 | | Doe | | xyz
我想从 table_2 获取记录,但由于 first_name
和 address
为空,因此应该从记录 table_1
但是 table_1
中的 city
又是空的,因此它会从 table_2
我尝试过这样的联合:
(SELECT * from `table_1` where `id` = `1)
UNION
(SELECT * from `table_2` where `id` = `1)
但它提供了表中的两条记录。我只想要一条记录使用两个表,如下所示:
id | enc | first_name | last_name | address | city
1 | 1001 | John | Doe | abc | xyz
最佳答案
SELECT IFNULL(T1.id,T2.ID) ID,IFNULL(T1.enc,T2.ENC)ENC,IFNULL(T1.first_name,T2.first_name)first_name , IFNULL(T1.last_name ,T2.last_name )last_name ,
IFNULL(T1.address ,T2.address )address ,
IFNULL(T1.city,T2.city)address
from `table_1` T1
INNER JOIN `table_2` T2 ON T1.ID=T2.ID
尝试上面的查询。
关于php - MySql 从两个相同的表中获取一条记录并进行检查,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44966441/