2012-02-02 4 views
1

У меня немного сложнее что-то сделать. У меня есть последующие 2 таблиц:php mysql join tables возвращают все результаты

арматура идентификатор, hometeam, awayteam, дата и время

корм идентификатора, homeodd, drawodd, awayodd fixtureid

в таблице подачи fixtureid одно и то же как столбец идентификатора в таблице приборов. проблема im имеет только 10 приспособлений имеют гомеодд или drawodd или awayodd, но я все еще хочу показать все приборы и просто показать данные из homeodd/drawodd/awayodd, если это доступно.

До сих пор я получил его на следующее заявление, но его тянет только через матчи, которые имеют корма fixtureid соответствие с ним:

ВЫБРАТЬ fixture.id, hometeam, awayteam, даты и времени, feed.fixtureid AS fix_id, feed.homeodd, feed.drawodd, feed.awayodd FROM fixture JOIN feed feed ON feed.fixtureid = fixture.id

Как я уже сказал, это возвращает только 10 вариантов вместо 360 доступных, поскольку это выглядит как его просто вытаскивание данные, которые соответствуют в таблице подачи.

Любые идеи, как я мог бы достичь всех светильников и просто показать данные, если это в таблице?

ответ

0

Вам просто нужен LEFT JOIN - это даст вам все строки на «левую» таблицу и NULLs, где нет соответствующей строки в «правой» таблице:

SELECT fixture.id, hometeam, awayteam, datetime, feed.fixtureid AS fix_id, 
     feed.homeodd, feed.drawodd, feed.awayodd 
FROM fixture 
LEFT JOIN feed feed ON (feed.fixtureid = fixture.id) 
0
SELECT fixture.id, hometeam, awayteam, datetime, feed.fixtureid AS fix_id, feed.homeodd, feed.drawodd, feed.awayodd 
FROM fixture 
    LEFT JOIN feed ON (feed.fixtureid = fixture.id)