【问题标题】:Retrieving Data From MySQL Against Specific Record Already Not Exist针对特定记录从 MySQL 检索数据已不存在
【发布时间】:2023-03-11 13:21:01
【问题描述】:

实际上,我对从MySql DB 获取数据感到困惑。我有两张桌子 RoomDentist 。在Dentist Form 中,我使用Combobox 显示RoomID,如下图所示,带有红色圆圈。在那个Combobox 中,我只想显示那些没有DentistIDRoomIDMySql Query 会是什么。

我的DataBase 两张桌子Room & Dentist 的照片如下。在 Room Table InchargeIDDentist TableDentistID 两者都相同但名称不同。

【问题讨论】:

  • 为什么是javaphp
  • 这些是表,而不是数据库。下次见meta.stackoverflow.com/questions/333952/… - 牙医真的不能拥有一个以上的房间吗?不管怎样,两个牙医用不同的名字指代同一个房间的可能性很小。
  • 看来你在MS Paint中做了注释! :D
  • @Nobody 哈哈!是的 :D :D
  • @Strawberry ,写错了......从我的角度来看,牙医可以有多个房间......因为他/她是牙医,他可能在不同的房间工作,但他/她不能负责一个以上的房间。从下面的答案我得到了我的解决方案。无论如何感谢您宝贵的时间先生:-)

标签: java mysql jcombobox


【解决方案1】:

根据您的问题,我认为您需要没有分配给任何牙医的房间 ID。所以你可以从以下查询中得到它:

SELECT Room.RoomID FROM Room WHERE Room.RoomID NOT IN (SELECT Dentist.RoomID FROM Dentist);

【讨论】:

  • 非常感谢...通过修改您的答案,我得到了问题的解决方案。 :-)
【解决方案2】:

您需要将 join 与表一起使用,并将 is null 与您要应用 'null' 条件的列名一起使用。您可以在下面的查询中找到来自 RoomDentist 的所有数据,其中 DentistID 为空。

select Room.*, Dentist.* from Dentist right join Room on Dentist.RoomID = Room.RoomID where Dentist.DentistID is null;

【讨论】:

  • 请注意,这种特殊的表述非常罕见; LEFT JOIN 等位基因是两个等位基因中最受欢迎的。
【解决方案3】:

假设您存储房间的表名为rooms,并且InchargeID 字段允许空值,这应该足够了:

select RoomID from rooms where InchargeID is null;

这是一个SQLFiddle,您可以在其中进行测试。

【讨论】:

    猜你喜欢
    • 2015-05-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-05
    • 2013-12-09
    • 1970-01-01
    • 2017-12-23
    相关资源
    最近更新 更多