【问题标题】:Select all rows from one table as long as that id doesnt represent a null in a second table从一个表中选择所有行,只要该 id 在第二个表中不代表空值
【发布时间】:2017-10-08 17:48:53
【问题描述】:

我有一个名为 movies 的表,其中包含两列 id_pelicula(电影 id)和 titulo(电影名称),以及它有以下几行。

(桌上电影)

接下来,我有一个名为 borrowment 的表,其中包含借用某部电影的日期和归还该电影的日期。如果电影已被借用且未归还,归还日期为NULL。该表的列是id_bitacora_prestamo(借用的id)、RFC(代表拥有电影的人的字符串)、id_pelicula(电影 ID),fecha_prestamo(借用日期),fecha_retorno(归还日期)。它有以下几行。

(表借用)

我想选择所有可用的电影,换句话说,就是选择表 movies 中的所有行,只要它们的 id_pelicula(movie id ) 不在borrowment 表中,如果id_pelicula(movie_id) 确实存在于borrowment 表中,则仅选择 if fecha_retorno(返回日期) 不为空。

我表中的示例应该返回电影:

星球大战:第四集 - 新希望

回到未来

(请原谅我的英语)

【问题讨论】:

  • 我对MYsql不太熟悉,但逻辑差不多:select * from movies where id_pelicula not in (select id_pelicula from borrowment where fecha_retorno is null)
  • 发布您的查询,让我们知道您面临什么问题

标签: mysql sql database select


【解决方案1】:

检查这个是否有效:

select titulo from movies where id_pelicula in 
(select id_pelicula from borrowment where fecha_retorno is not null) or 
id_pelicula not in (select id_pelicula from borrowment);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-24
    • 2012-09-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多