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