작동하지 않습니다,하지만 내가 s.hostId는 NULL이 될 수 있기 때문에 알고 결과를 나에게MySQL의 IFNULL() 여러 테이블에 내 코드에서이 쿼리를 사용하고
$query = sprintf("SELECT s.day, s.hour, h.name hostName
FROM schedule s, host h
WHERE dag IN (SELECT day
FROM schedule
WHERE showId = %s
ORDER BY day, hour)
AND s.hostId = h.id,
AND s.showId = %s
ORDER BY day, hour",
mysqli_real_escape_string($con, $id),
mysqli_real_escape_string($con, $id));
를 제공하지 않습니다 .
IFNULL() - 메소드를 찾았지만 다음과 같이 사용했지만 작동하지 않았습니다.
SELECT s.day, s.hour, IFNULL(h.name, "") hostname
누군가 제발 나를 도와 줄 수 있습니까? : S
추신 : sprintf를 사용할 수있는 유일한 real_escape (두 번 같은 값이기 때문에)이지만 % 1 $ s을 % 1 $ s로 바꾸면 자리 표시자를 사용해야합니다. 오류 : 누군가가 나를 도울 수 있다면 S
그래서 당신은
ISNULL 대신 IS NULL을 사용하십시오. ISNULL()은 Microsoft와 Oracle입니다. –
죄송합니다. ISNULL (편집 됨) 대신 IFNULL을 의미했습니다. – MichaelDeBoey
'SELECT s.day, s.hour, h.name hostName' - 쉼표가 누락 되었습니까? 'SELECT s.day, s.hour, h.name, hostName' -이'FROM schedule s, host h'는 확실하지 않습니다. 점들이 없어야합니까? 'FROM schedule.s, host.h'는 옳지 않은 것 같습니다. –