我如何从两个不同的表中选择不同的列,例如:
SELECT username, email FROM `table1`
UNION
SELECT * FROM `table2` WHERE username = 'user1';
我收到错误"#1222 - The used SELECT statements have a different number of columns"
。据我了解,UNION 不起作用,
有没有办法实现这一点,因为我需要不相等的列数和行数and两个表中没有相互/相似的条目(即 user1 未在 table1 中列出)?
这不能在一个查询中完成吗?
谢谢你!
You can fake
使用别名缺失的列 - 例如
SELECT username, email, '' as name FROM `table1`
UNION
SELECT username, email, name FROM `table2`
WHERE username = 'user1';
其中 name 在 table2 中,但不在 table1 中
除非您将 UNION 与 JOINS 混淆:
SELECT table1.*, table2.* FROM
table1 INNER JOIN table2
ON table1.username = table2.username
这将合并两个表,因此您将获得同一行上的所有列。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)