Mysql 选择两个表中的数据

Mysql 选择两个表中的数据,mysql,sql,Mysql,Sql,表1: 表2: +-----------+----------+------------+ | FirstName | LastName | Qty | +-----------+----------+------------+ | Tia | Carrera | 10 | | Nikki | Taylor | 20 | | Yamila | Diaz | 30 | +-----------+-

表1:

表2:

+-----------+----------+------------+
| FirstName | LastName | Qty        |
+-----------+----------+------------+
| Tia       | Carrera  | 10         |
| Nikki     | Taylor   | 20         |
| Yamila    | Diaz     | 30         |
+-----------+----------+------------+
表中行的输出示例

+-----------+----------+------------+
| FirstName | LastName | Qty        |
+-----------+----------+------------+
| Tia       | Carrera  |  5         |
| Nikki     | Taylor   |  8         |
+-----------+----------+------------+

您应该创建新列,并使用不同于FirstName和LastName的列定义PK和FK。但对于当前结构,您可以使用
左连接
合并

+-----------+----------+------------+
| FirstName | LastName | Qty        |
+-----------+----------+------------+
| Tia       | Carrera  | 5          |
| Nikki     | Taylor   | 8          |
| Yamila    | Diaz     | 30         |
+-----------+----------+------------+

输出:

SELECT t1.FirstName, t1.LastName, COALESCE(t2.Qty, t1.Qty) AS Qty
FROM table1 t1
LEFT JOIN table2 t2
  ON t1.FirstName = t2.FirstName
 AND t1.LastName = t2.LastName;
可能会有帮助

╔════════════╦═══════════╦═════╗
║ FirstName  ║ LastName  ║ Qty ║
╠════════════╬═══════════╬═════╣
║ Nikki      ║ Taylor    ║   8 ║
║ Tia        ║ Carrera   ║   5 ║
║ Yamila     ║ Diaz      ║  30 ║
╚════════════╩═══════════╩═════╝
可能重复的
SELECT * FROM Table2
UNION ALL
SELECT * FROM Table1
    WHERE FirstName NOT IN(SELECT FirstName FROM Table2) AND 
          LastName  NOT IN(SELECT LastName FROM Table2)