【发布时间】:2018-11-24 05:14:13
【问题描述】:
我有以下查询,它从一系列表中获取一堆列
SELECT Events.eventID, Events.eventName, Organisations.organisationName, Events.eventCrewSize, Events.eventGuestSize, Events.eventDate, Events.eventTime, Boat.boatName, Address.addressNo, Address.addressStreet, Address.addressStreetType, Address.addressSuburb, Address.addressPostCode, Address.addressState
FROM Events, Organisations, Boat, Address
WHERE Events.eventOrganisation = Organisations.organisationID AND Events.eventBoatID = Boat.boatID AND Events.eventAddressID = Address.addressID AND Events.eventDate >= CURDATE();
我的问题是,并非所有事件都会有组织,而不是为该列返回 NULL,它只是不包括任何没有组织的事件。
我尝试从 where 子句中删除组织部分,其中包括空行,但它使用另一个事件的组织作为其值,而不是实际的空值。
我认为这是一个连接问题,但不确定如何相应地构建它。
【问题讨论】:
-
编写具有意外行为的最少代码并通过参考手册或教科书来解释您的期望。否则你只是要求我们重写一个。逗号进行交叉连接 & where 保留满足条件的行,如内部连接。了解联接如何工作。对于代码问题,请阅读minimal reproducible example并采取行动。
标签: mysql database join select