【问题标题】:SELECT rows from a table joining only one row of another table从一个表中选择行,只连接另一个表的一行
【发布时间】:2012-06-28 19:38:46
【问题描述】:

我有两个表:Home(ID, name) 和 Photos(ID, homeid, filename, splash)

首页主键是ID,照片主键是ID。一个主页可以有多张照片。 Splash 可以是 0 或 1,对于每个 HomeID,最多一张照片可以有 splash=1。

现在我想 SELECT * FROM Home 合并每个家庭的启动画面,如果存在,否则启动画面返回 null。

我该怎么办?

以下是表格示例:

Home
ID     name
1      home1
2      home3252
3      home5326

Photos
ID     homeid       filename       splash
1      1            asda.jpg       0
2      1            aspg.jpg       1
3      2            nasf.jpg       0
4      2            qfqj.jpg       1
5      3            vnas.jpg       0
6      3            nfao.jpg       0

【问题讨论】:

  • 到目前为止你有什么?

标签: mysql sql select join


【解决方案1】:
select h.name, p.filename
from Home h
left join Photos p on (h.id = p.homeid and p.splash = 1)

【讨论】:

  • 感谢您的回答。问题解决了。我接近解决方案,但我只在“on”声明中插入了一个方程。非常感谢
【解决方案2】:

答案就在你的问题中,使用LEFT OUTER JOIN MySQL 语法...

【讨论】:

  • 谢谢。我正在使用左外连接,但我只在“on”声明中声明(home.id = photo.homeid)并且我忘记了 photo.splash = 1。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-03-13
  • 2022-09-23
  • 1970-01-01
  • 2020-08-17
  • 2015-05-03
  • 2012-07-30
相关资源
最近更新 更多