2016-10-01 3 views
0

Я пытаюсь получить данные из 2 таблиц с помощью объединений. Но я не знаю, как это сделать. Я читал о присоединениях, но это не имело никакого смысла, так как я новичок.MySQL присоединяется. совпадают два условия в двух столбцах

У меня есть две таблицы.

Playgrounds   Inspection 

    id u_id   id playground_id 
    1 2    1  1 
    2 2    2  2  

В игровых площадок стола id это площадка идентификатор и являются уникальным и u_id является пользователем на игровой площадке.

В инспекции таблица id уникальна и playground_id используется в качестве внешнего ключа из площадок Ид стола.

Моя проблема заключается в том, что я должен пройти id и u_id в запросе в игровые площадки таблицу, то он должен выбрать идентификатор из детской площадки таблицы. Затем он должен выбрать каждую вещь из осмотр таблица на основе этого идентификатора.

Надеюсь, я объяснил это правильно.

Любая помощь очень ценится.

Заранее спасибо

+0

Можете ли вы показать, что вы сделали до сих пор? –

+0

сделать соединение на 'playground_id' – Zeeshan

ответ

1

JOIN операции, независимо от того, INNER JOINLEFT JOIN или RIGHT JOIN, имеют этот общий синтаксис.

table_expression JOIN table_expression ON boolean_expression 

Если логическое выражение истинно, то JOIN сцепляет совпадающие строки из двух таблиц в одну строку в результате.

В вашем случае, вы хотите логическое выражение пункта о к сказать

Playgrounds.id = Inspection.playground_id 

, потому что, как вы знаете, ряд из Inspection относится к ряду в Playgrounds. Соответственно, заявление, подобное

SELECT Inspection.id AS Inspection_ID, 
     Playgrounds.id AS Playground_ID, 
     Playgrounds.u_id AS User_ID 
    FROM Playgrounds 
    JOIN Inspection ON Playgrounds.id = Inspection.playground_id 
    WHERE Playgrounds.u_id = something 
    AND Playgrounds.id = something_else 

Посмотрите, как это происходит? Ваш SELECT создает новую таблицу, иногда называемую результирующим набором, путем добавления строк двух существующих таблиц по критериям, выбранным в предложении ON.

Вы можете положить все, что хотите, в статью ON. Вы можете поместить

Playgrounds.id = Inspection.playground_id OR Inspection.id < 20 

или

Playgrounds.id = Inspection.playground_id OR Inspection.scope = 'citywide' 

, например (если вы имели scope столбец в Inspection таблице).

Но, не ходите туда, пока не освоите базовую операцию JOIN.