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;