Я хочу выбрать данные из моей базы данных, когда конкретный столбец в таблице содержит определенные данные или не заполняется. вот мой код sql:
SELECT
bus.bus_id,
bus.seats,
entity.entityid,
entity.company_name,
entity.logo AS companylogo,
route.start_point,
route.drop_point,
route.boarding_time,
route.arrival_time,
FROM
loading_buses
INNER JOIN bus ON loading_buses.bus_id = bus.bus_id
INNER JOIN route ON loading_buses.route_id = route.route_id
INNER JOIN entity ON bus.entity = entity.entityid AND route.entity_id =
entity.entityid
WHERE
loading_buses.'current_date' ='23/1/2018' OR
loading_buses.'current_time' >= '00:00' AND
route.start_point = 'accra' AND
route.drop_point = 'kumasi'
ORDER BY
route.price ASC
И это мой вывод
1 49 1 STC assets/images/stc.png accra kumasi 1/17/2018 20:00 1/18/2018 00:00 20 9/18/2017 7/18/2017
2 15 1 STC assets/images/stc.png accra kumasi 1/17/2018 20:00 1/18/2018 00:00 20 9/18/2017 7/18/2017
3 55 1 STC assets/images/stc.png accra kumasi 1/17/2018 20:00 1/18/2018 00:00 20 9/18/2017 7/18/2017
В моей базе данных текущая дата столбца имеет определенную дату, которая должна отображаться в зависимости от установленной даты или отсутствия даты в столбце, она должна отображаться. Итак, в заключение, результат запроса показывает только данные для указанной даты и null. Но Query отображает все данные в таблице
Вы должны использовать() для группировки своих OR:
WHERE
(loading_buses.'current_date' ='2018-01-23' OR loading_buses.'current_date' is null)
AND
route.start_point = 'accra' AND
route.drop_point = 'kumasi'
если вы хотите проверить значение null, вы должны использовать null
WHERE loading_buses.'current_date' ='23/1/2018' OR
loading_buses.'current_time' is null
Или на основе вашего комментария вы можете использовать
WHERE loading_buses.'current_date' ='23/1/2018' AND
loading_buses.'current_time' is null
current_date используется как ключевое слово для определения системной даты во многих базах данных. Поэтому, пожалуйста, убедитесь, что это не так.
current_date
= '23/1/2018 '--- Измените значение даты в этом состоянии и посмотрите, все ли он возвращает все данные.
Кроме того, закомментируйте это условие --- loading_buses. current_time
> = '00: 00 ', поскольку все строки удовлетворяют этому условию.