PHP-MySQL-如何联接两个没有重复的表?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了PHP-MySQL-如何联接两个没有重复的表?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1271字,纯文字阅读大概需要2分钟。
内容图文
![PHP-MySQL-如何联接两个没有重复的表?](/upload/InfoBanner/zyjiaocheng/887/6311f862ab63451ba86f3a1a1ab41884.jpg)
我有两个如下表
hotels
------
hotelID
hotelName
第二张桌子
operators
---------
opID
opName
opServices
opHotelID
简短的解释:在第一个表中,我有很多旅馆,它们的增量ID是唯一的.第二个表包含为该酒店提供其他服务的所有操作符.这里的opID也是唯一的,但是opHotelID存在多次,因为可能有很多操作符提供该酒店.
现在,我想得到的是以下内容:
我想获取HotelName和一个附加的列(称为运算符),该列列出了提供酒店的所有运算符.
所以结果应该是这样的…
123 - Hotel ABC - OP1,Op2,OP3
而不是这个…
123 - Hotel ABC - OP1
123 - HOtel ABC - OP2
123 - Hotel ABC - OP3
有没有办法在一个SQL查询中执行此操作,或者您将如何解决此问题?我目前正在使用搜索功能,目前我有一个带有左联接的简单SELECT查询,但这将返回更多行.现在,搜索应仅显示唯一的HotelID,并将不同的运算符合并到一栏中.
谢谢您的帮助,祝您有美好的一天.
再见
WorldSignia
解决方法:
试试这个:
SELECT hotels.hotelID,
hotels.hotelName,
GROUP_CONCAT(operators.opName SEPARATOR ', ') AS opList
FROM hotels
INNER JOIN operators
ON operators.opHotelID = hotels.hotelID
GROUP BY(hotels.hotelID)
如果要拥有运算符数量,则必须在运算符ID上使用COUNT,如下所示:
SELECT hotels.hotelID,
hotels.hotelName,
GROUP_CONCAT(operators.opName SEPARATOR ', ') AS opList,
COUNT(operators.opID) AS nbOperatos
FROM hotels
LEFT JOIN operators
ON operators.opHotelID = hotels.hotelID
GROUP BY(hotels.hotelID)
内容总结
以上是互联网集市为您收集整理的PHP-MySQL-如何联接两个没有重复的表?全部内容,希望文章能够帮你解决PHP-MySQL-如何联接两个没有重复的表?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。