Php e subquery.MySQL并不总是很好地优化(SELECT…中的,所以我尽量避免它。JOIN与内部连接隐式相同 SELECT doctor_name FROM doctor_tags AS dt1 JOIN doctor_tags AS dt2 ON

Php e subquery.MySQL并不总是很好地优化(SELECT…中的,所以我尽量避免它。JOIN与内部连接隐式相同 SELECT doctor_name FROM doctor_tags AS dt1 JOIN doctor_tags AS dt2 ON,php,mysql,sql,Php,Mysql,Sql,e subquery.MySQL并不总是很好地优化(SELECT…中的,所以我尽量避免它。JOIN与内部连接隐式相同 SELECT doctor_name FROM doctor_tags AS dt1 JOIN doctor_tags AS dt2 ON dt1.tag_name = dt2.tag_name AND dt1.doctor_id != dt2.doctor_id JOIN doctors AS d2 ON dt2.doctor_id = d2.doctor_id WHERE d


e subquery.MySQL并不总是很好地优化(SELECT…中的
,所以我尽量避免它。
JOIN
内部连接隐式相同
SELECT doctor_name
FROM doctor_tags AS dt1
JOIN doctor_tags AS dt2 ON dt1.tag_name = dt2.tag_name AND dt1.doctor_id != dt2.doctor_id
JOIN doctors AS d2 ON dt2.doctor_id = d2.doctor_id
WHERE dt1.doctor_id = :doctor_id
SELECT d1.doctor_id, GROUP_CONCAT(DISTINCT d2.doctor_name) AS related_doctors
FROM doctors AS d1
JOIN doctor_tags AS dt1 ON d1.doctor_id = dt1.doctor_id
JOIN doctor_tags AS dt2 ON dt1.tag_name = dt2.tag_name AND dt1.doctor_id != dt2.doctor_id
JOIN doctors AS d2 ON dt2.doctor_id = d2.doctor_id
GROUP BY d1.doctor_id
SELECT DISTINCT d1.doctor_id, d2.doctor_name
FROM doctors AS d1
JOIN doctor_tags_join AS dt1 ON d1.doctor_id = dt1.doctor_id
JOIN doctor_tags_join AS dt2 ON dt1.tag_id = dt2.tag_id 
    AND dt1.doctor_id != dt2.doctor_id
JOIN doctors AS d2 ON dt2.doctor_id = d2.doctor_id
ORDER BY d1.doctor_id, d2.doctor_name
SELECT DISTINCT r.doctor_id, r.doctor_name
FROM doctors d
    INNER JOIN doctor_tags dt_d
        ON d.doctor_id = dt_d.doctor_id
    INNER JOIN doctor_tags dt_r
        ON dt_d.tag_name = dt_r.tag_name
    INNER JOIN doctors r
        ON dt_r.doctor_id = r.doctor_id
WHERE d.doctor_id = 12345
select tag_name from doctors_tags where doctor_id='(your doctor_id)'
SELECT doctor_id 
FROM doctors_tags 
WHERE tag_name in(
 SELECT tag_name FROM doctors_tags 
 WHERE doctor_id='(your doctor_id)' 
)
select doctors.doctor_name, doctors.doctor_id 
from doctors, doctors_tags 
where doctors_tags.tag_name in(
  SELECT tag_name FROM doctors_tags 
  WHERE doctor_id='(your doctor_id)' 
)
and doctors.doctor_id = doctors_tags.doctor_id;
select doctors.doctor_name, doctors.doctor_id
from doctors, doctors_tags, doctors_tags_joins
where doctors_tags.tag_name in
(
    select tag_name 
    from doctors_tags, doctors_tags_joins
    where doctors_tags_joins.doctor_id=(your id)
    and doctors_tags.tag_id=doctors_tags_joins.tag_id
)
and doctor_tags_joins.tag_id=doctors_tags.tag_id
and doctors.doctor_id=doctors_tags.doctor_id;