Что является лучшим JOIN для этого?(Много ко многим) MYSQL - PullRequest
0 голосов
/ 02 августа 2011

Для этих таблиц здесь (обведено)

http://imgur.com/Q1HlJ

Что бы лучше всего использовать для них, я попытался использовать OUTER join, но он не вернул ни одной строки, даже если были совпадающие данные.

Спасибо

1010 * QUERY *

select *

from 

hr

OUTER JOIN

hr

ON

hr.procedure_id = procedure.procedure_id

OUTER JOIN

staff

ON

staff.staff_id = hr.staff_id

Where hr.procedure_id = procedure.procedure_id

Ответы [ 3 ]

1 голос
/ 02 августа 2011

Я бы предложил почитать СОЕДИНЕНИЯ . Трудно понять, что вы ищете. Мы не примем это решение за вас.

0 голосов
/ 02 августа 2011

Не связывайтесь с JOIN вообще, и пусть оптимизатор запросов обработает его для вас.

select * from hr, procedure, staff
where hr.procedure_id = procedure.procedure_id and staff.staff_id = hr.staff_id
0 голосов
/ 02 августа 2011

Что вы, вероятно, хотите, это:

select p.*, hr.*, s.*
from procedure p
left outer join hr on p.procedure_id = hr.procedure_id
left outer join staff s on hr.staff_id = s.staff_id

Это даст вам результаты, если в процедуре нет строк.

Существуют разные способы их объединения, в зависимости от того, что именно вы хотите. Я не знаю, что здесь означает «час», поэтому я не могу использовать здравый смысл, чтобы понять это.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...