2015-03-08 2 views
-1

У меня 2 таблицы в MySQL, один пользователь и один элементвыбрать строку несколько раз из таблицы

таблица1 пользователя

id name 
---------- 
1 Peter 
2 Roy 
3 Mary 

таблица2 элемент

id name owner1 owner2 
1 pen  1  2 
2 shoes 2  3 

Каждый элемент имеет 2 владельца, идентификатор пользователя будет храниться в owner1 и owner2. Теперь я хочу выбрать имя владельца в таблице2, когда вы получите все данные в таблице2, поэтому я хочу выбрать строку (имя) два раза, чтобы получить имя.

Я пытаюсь использовать оператор объединения для написания инструкции sql, но он не работает.

Как написать заявление sql в этом случае?

Список результатов моего неимением

  1. Itemid 2.itemname 3.owner1 имя пользователя 4.owner2 имя пользователя
+0

я хочу, чтобы выбрать все данные в table2 с владельцем имени – Roy12345678

ответ

0

Вы не очень четко понимаете, какие результаты вы хотите, я предполагаю, что вы хотите, чтобы предмет, а затем nam е каждого пользователя на той же строке, вы можете просто создать два соединяет для каждого владельце:

SELECT item.id, item.name, user_one.name as owner1, user_two.name as owner2 
FROM item 
LEFT JOIN user AS user_one ON (user_one.id = item.owner1) 
LEFT JOIN user AS user_two ON (user_two.id = item.owner2) 
+0

Я хочу выбрать имя владельца в таблице2, когда get itemid1 в таблице2, Как написать заявление sql? – Roy12345678

+0

Можете ли вы указать точные столбцы, которые вы хотите в результатах? Я не совсем понимаю, что вы просите. – Purgatory

+0

1. itemid 2.itemname 3.owner1 имя пользователя 4.owner2 имя пользователя – Roy12345678

1
SELECT i.id 
    , i.name 
    , u1.name owner1 
    , u2.name owner2 
    FROM item i 
    JOIN user u1 
    ON u1.id = i.owner1 
    JOIN user u2 
    ON u2.id = i.owner2; 
+0

если я хочу выбрать имя владельца в table2, когда получить все данные в таблице2, Как написать sql-инструкцию? – Roy12345678

+0

Если у вас есть другой вопрос, задайте другой вопрос или отредактируйте приведенный выше. – Strawberry

0

Выберите имена пункт '2 владельцев пера':

SELECT name FROM user WHERE id=1 or id=2; 
0

Вы можете использовать присоединиться к столу пользователя в два раза: ВЫБРАТЬ item.name, owner1.name, owner2.name с позиций РЕГИСТРИРУЙТЕСЬ пользователя владелец1 ON item.owner1 = owner1.id РЕГИСТРИРУЙТЕСЬ пользователь owner2 ON item.owner2 = owner2.id

Смежные вопросы