我有这样的表:
table1 table2 name1 | link_ID name2 | link_ID text 1 text 2 text 2 text 4
我想得到结果:
name1 name2 link_IDtext text 1text text 2text text 4
我怎么能这样做?
加:
Sry,我的英语不太好.我有设备,device_model和device_type表与重复字段counter_set_ID.我想从counter_set中选择具有counter_set_ID的所有值的字段.我只需要从counter_set_ID字段中获取值
现在我有这个查询:
SELECT `dev`.`counter_set_ID`,`mod`.`counter_set_ID`,`type`.`counter_set_ID`FROM `device` AS `dev`left JOIN `device_model` AS `mod` ON `dev`.`device_model_ID` = `mod`.`ID`left JOIN `device_type` AS `type` ON `mod`.`device_type_ID` = `type`.`ID`WHERE `dev`.`ID` = 4;
这将返回3列,但我需要一列中的所有值
这是我认为的最终变体:
SELECT `dev`.`counter_set_ID`FROM `device` AS `dev` left OUTER JOIN `device_model` AS `mod` ON `dev`.`device_model_ID` = `mod`.`ID`WHERE `dev`.`ID` = 4 AND `dev`.`counter_set_ID` IS NOT NulLUNIONSELECT `mod`.`counter_set_ID`FROM `device_model` AS `mod` left OUTER JOIN `device` AS `dev` ON `mod`.`ID` = `dev`.`device_model_ID`WHERE `mod`.`counter_set_ID` IS NOT NulL;
最佳答案根据您提供的样本表和所需的输出,听起来您可能想要一个完整的外部联接.并非所有供应商都实现了这一点,但您可以使用left OUTER连接和UNION到EXCEPTION连接来模拟它,其中表格反转如下:Select name1,name2,A.link_IDFrom table1 A left Outer Join table2 B on A.link_ID = B.link_IDUnionSelect name1,link_IDFrom table2 C Exception Join table1 D on C.link_ID = D.link_ID
然后你的输出将是这样的:
name1 name2 link_ID===== ===== =======text
总结 以上是内存溢出为你收集整理的sql – 如何将具有相同字段的两个表的结果连接到一个字段中?全部内容,希望文章能够帮你解决sql – 如何将具有相同字段的两个表的结果连接到一个字段中?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)