SQL интересна заявка от 3 таблици

d_badboy

Registered
Здравейте, имам затруднение със една заявка която мога да обесня така:

1 )В таблица1 имам поле, на което има ID на таблица2 (до тук е лесно)
2) В таблица2 имам 2 полета, на които има ID на таблица3, което е различно за 2-те полета (тук става малко сложно :) )

Искам да извлека всичко от таблица1 и съдържанието на 2-те полета от таблица2, които са извлечени от таблица3

До сега съм направил само това по 1)
Код:
SELECT * FROM `таблица1` LEFT JOIN `таблица2` ON `таблица1`.`ID of таблица1`=`таблица2`.`ID of таблица1`
 
Код:
таблица1
ID of таблица1
Info1 of таблица1
Info2 of таблица1
ID  of таблица2

таблица2
ID of таблица2
Info1 of таблица2
Info2 of таблица2
ID1 of таблица3
ID2 of таблица3

таблица3
ID of таблица3
Info1 of таблица3
Info2 of таблица3
Значи полетата от таблица1 и таблица2 като взема
Info1 of таблица3, Info2 of таблица3
от таблица3 там където са
ID1 of таблица3, ID2 of таблица3
на таблица2
 
Код:
SELECT
		table1.*,
		table2.*,
		table3.*
FROM
		table3
LEFT JOIN
		table1
ON
		(table1.id1 = table3.id)
LEFT JOIN
		table2
ON
		(table2.id2 = table3.id)

?? това?
Аз поне не разбрах кое с кое да се върже :)
 
Не мога да си представя, че дори и ти като го четеш и го разбираш този твой въпрос :)
В смисъл, може да се повтарям, ама по-лесно ще ни е на всички ако постнеш самата структура на таблиците, постнеш по един/два записа и кажеш точно какъв очакваш да е резултата :?:
sorRy каза:
мисля че ще стане с joint обаче дай примерна структура че нещо се оплетох
Е чак пък с joint не виждам как ще стане :D
 
Ще дам по реални данни за да можем да сглобим тази заявка
Таблица ticket
Код:
id_ticket
first_name
last_name
id_flights
Още полета ...
Таблица flight
Код:
id_flight
departure
arrival
Още полета ...
Таблица dest (само 3 полета)
Код:
id_dest
city
country
Така искам да взема всичко от таблици ticket и flight
като departure.flight и arrival.flight са от
id_dest.flight = id_dest.dest

departure.flight и arrival.flight са различни id-та от таблица dest :idea:
 
Replace каза:
Е чак пък с joint не виждам как ще стане :D


000660283-big.jpg
 
SELECT
t.first_name AS fName,
t.last_name AS lName,
GROUP_CONCAT(d.id_dest) AS destination
FROM
flight AS f
INNER JOIN
ticket AS t
LEFT JOIN
dest AS d ON f.departure = d.id_dest OR f.arrival = d.id_dest
:idea:
 

Back
Горе