Join заявка

6 отговора 677 прегледа
#1

Join заявка

Имам следните две таблици:

sites (site_id, name, domain)
girlsites (girl_id, site_id)

Как ще изглежда mysql заявката, която избира всички записи от sites и само тези от girls, за който отговаря определено girl_id, 198 например. Със следната не става:

SELECT s.name, s.site_id
FROM sites s
LEFT JOIN girlsites g
USING ( site_id )
WHERE g.girl_id =198

Защото ми връща само тези сайтове, за който имам момиче.

Отговор
в отговор на Unit-731 #2

Re: Join заявка

SELECT * FROM sites UNION ALL SELECT * FROM girlsites WHERE girl_id = 198

Отговор
в отговор на Unit-731 #3

Re: Join заявка

SELECT s.name, s.site_id
FROM sites s
LEFT OUTER JOIN girlsites g
USING ( site_id )
WHERE g.girl_id =198

Епа, това е моето хоби... [линк]
Отговор
в отговор на fiffy #4

Re: OUTER е излишна дума според стандарта

Няма никаква разлика между

LEFT JOIN
и
LEFT OUTER JOIN

независимо дали пишеш OUTER с червен шрифт или не.

Просто има два вида OUTER JOIN съответно ляв и десен и стандартът позволява да се добави или пропусне думичката OUTER.

salle.online.bg/sig
Отговор
в отговор на Unit-731 #5

Re: Join заявка

Aко правилно съм разбрал искаш ВСИЧКИ сайтове дето гърлата е им е 198 нали?
Тогава :
SELECT s.name, s.site_id
FROM sites s , girlsites g
WHERE s.site_id=g.site_id
AND g.girl_id =198

ИЛИ ако искаш ВСИЧКИ (??!!??) сайтове -> за какво да JOIN-ваш гърлс, като както е видно нищо не четеш от таблицата !

root@ro6avia#echo rm -rf * > /bin/seek_and_destroy
root@ro6avia#/bin/seek_and_destroy
Отговор
в отговор на Unit-731 #6

ето

SELECT

s.name,
s.site_id
FROM
sites s LEFT JOIN girlsites g
ON
s.site_id=g.site_id AND g.girl_id = 198


Everything louder than everything else...

Редактирано от Dakota на

Отговор
в отговор на Unit-731 #7

Re: Join заявка

SELECT s.name, s.site_id
FROM sites s INNER JOIN
girlsites g ON s.site_id = g.site_id
WHERE (g.girl_id = 198)

Отговор