Запрос из 2 таблиц

Печать RSS
467

Автор
Господин ПЖ
0
Гуру mysql кто сможет осилить тестовое задание в файле

https://i.gyazo.com/6c2d087e72c7b0676ac55760731e977a.png вот ссылка
Изменил: Вантуз-мен (15.09.2015 / 09:58)
R

Пришелец
0
SELECT c.*,ci.*
FROM Customer c
LEFT JOIN CustomerInfo ci ON(ci.id=c.id)
А

Землянин
0
Безумно грязный вариант но работает =)
SELECT id,
(SELECT `Value` FROM CustomerInfo WHERE Field = 'FirstName' and id = c.id) AS FirstName,
Name,
(SELECT `Value` FROM CustomerInfo WHERE Field = 'Phone' and id = c.id) AS Phone
FROM Customer c

Добавлено через 00:59 сек.
2. Reflesh, нужно вернуть 3 строки в ответе а у тебя возвращается 5.
Автор
Господин ПЖ
0
3. klesh, годится
я пока сделал 2 способами
но вот второй без подзапросов не возвращает ничего если нет фамилии или телефона

SELECT c.id, ci.value FirstName, c.name, ci2.value phone
   FROM customer c
   LEFT JOIN (SELECT * FROM customerinfo Where field='FirstName') ci ON ci.id = c.id
   LEFT JOIN (SELECT * FROM customerinfo Where field='phone') ci2 ON ci2.id = c.id

// Вариант 2 без подзапросов
SELECT c.id, ci.value FirstName, c.name, ci2.value phone
FROM customer c
LEFT JOIN customerinfo ci ON ci.id = c.id
LEFT JOIN customerinfo ci2 ON ci2.id = c.id
WHERE ci.field = 'FirstName'
AND ci2.field = 'phone'
А

Землянин
0
4. Vantuz, я вот тоже сижу и не могу придумать что делать если нет фамилии или телефона, побывал делать самосоединение таблицы customerinfo но чет не понял как объединить нечетное кол. строк.
А

Землянин
0
Вот так все работает как надо:
SELECT c.id, ci.Value AS FirstName, c.Name, ci2.Value AS Phone
FROM Customer c
LEFT JOIN CustomerInfo ci ON ci.id = c.id and ci.Field = 'FirstName'
LEFT JOIN CustomerInfo ci2 ON ci2.id = c.id and ci2.Field = 'Phone'
Изменил: Александр (15.09.2015 / 15:02)
Автор
Господин ПЖ
0
6. klesh, ага думаю самый оптимальный вариант
E

Пришелец
0
мои глаза видят боль...

Добавлено через 04:26 сек.
select * from `custumer` , `custumerinfo` WHERE `customer`.`id`=`customerinfo`.`id`
J

Оранжевые штаны
0
8. ensteyn2, было бы все так просто....

Чатланин
0
select customer.id, name, Firstname, Phone from customer 
LEFT JOIN(select id, value as Firstname from customerinfo WHERE field = 'Firstname') as cn ON   customer.id = cn.id 
LEFT JOIN(select id, value as Phone from customerinfo WHERE field = 'Phone') as cp ON customer.id = cp.id; 

Изменил: Don (20.09.2015 / 19:11)
Стикеры / Теги / Правила / Топ тем / Топ постов / Поиск