I가 다음과 같은 방식으로 쿼리를 생성하는 스크립트 (사용자 입력에 기초하여) 가지고하위 선택이있는 여러 테이블에서 행을 뒤로 당깁니다?
는SELECT * FROM articles
WHERE (articles.skeywords_auto ilike '%pm2%')
AND spubid IN (
SELECT people.spubid FROM people
WHERE (people.slast ilike 'chow')
GROUP BY people.spubid)
LIMIT 1;
생성 된 데이터 세트 :
Array ([0] =>
Array (
[spubid] => A00603
[bactive] => t
[bbatch_import] => t
[bincomplete] => t
[scitation_vis] => I,X
[dentered] => 2009-07-24 17:07:27.241975
[sentered_by] => pubs_batchadd.php
[drev] => 2009-07-24 17:07:27.241975
[srev_by] => pubs_batchadd.php
[bpeer_reviewed] => t
[sarticle] => Errata: PM2.5 and PM10 concentrations from the Qalabotjha low-smoke fuels macro-scale experiment in South Africa (vol 69, pg 1, 2001)
[spublication] => Environmental Monitoring and Assessment
[ipublisher] =>
[svolume] => 71
[sissue] =>
[spage_start] => 207
[spage_end] => 210
[bon_cover] => f
[scover_location] =>
[scover_vis] => I,X
[sabstract] =>
[sabstract_vis] => I,X
[sarticle_url] =>
[sdoi] =>
[sfile_location] =>
[sfile_name] =>
[sfile_vis] => I
[sscience_codes] =>
[skeywords_manual] =>
[skeywords_auto] => 1,5,69,2001,africa,assessment,concentrations,environmental,errata,experiment,fuels,low-smoke,macro-scale,monitoring,pg,pm10,pm2,qalabotjha,south,vol
[saward_number] =>
[snotes] =>
)는
문제 I 이는 또한 '사람'테이블의 모든 열 (하위 선택에서 참조 된대로)이 데이터 집합의 일부로 돌아 오도록해야합니다. 나는 과거에 하위 선택 (sub select)을 많이하지 않았으므로이 접근법은 나에게 매우 새로운 것이다. 기사 테이블의 모든 일치하는 행/열을 사람 테이블의 행/열처럼 그대로 되돌리려면 어떻게해야합니까?
당신은 포맷 작업을하시기 바랍니다 수 있습니까? – gbn
누군가 JOIN과 INNTER JOIN의 주요 차이점을 설명해 주실 수 있습니까? SELECT * t 사람들에게 P = ON p.spubid t.spubid p.saffil AND = 'DAS' WHERE t.skeywords_auto ILIKE '% 1 %의 PM2'가입 ARTICLES FROM; 대 : 이를 SELECT * P * 기사 의 FROM INNER이 = p.spubid WHERE a.skeywords_auto ILIKE '% PM2 %'AND p.saffil = 'a.spubid ON 페이지로 사람을 가입한다.. DAS '; 두 결과 모두 동일한 결과를 얻습니다. –
분명히 형식화가 주석에 이월되지 않습니다 ... #hrmph –