2011-01-31 3 views
1

Итак ... Я новичок в sql и люблю то, что узнал, но вот вопрос, на который я нахожусь.Вопрос SQL-запроса

Я создал форму веб-сайта. Это форма типа времени. Пользователь входит в систему и щелкает по выпадающему меню (которое выбирается из БД). Оно называется jobsite, затем он прокручивает вниз и нажимает на Jobsite # 2. (оба поля выбирают из той же таблицы.) Когда они отправляются, он отправляется в БД просто отлично. Отображение обоих полей в качестве идентификационного номера, который они выбрали .. Не имя ..

SELECT jobsite.Jobsite as 'Customer', 
FROM timeCard 
LEFT JOIN jobsite ON timeCard.jobsite = jobsite.id 

Этот запрос отлично работает. Вытягивание timeCard.jobsite информация. Если изменить его

LEFT JOIN jobsite ON timeCard.jobsite2 = jobsite.id 

, который отлично работает слишком тянущие все введенные данные из Jobsite2 ... Что запрос будет работать, чтобы получить их, чтобы показать, как «Клиент 1 и Customer2» на том же запросе? Имеет ли смысл мой вопрос? Я пытаюсь получить его для экспорта в Excel, чтобы он отображался со всей информацией в одной строке в основном. Сотрудник 1, работал на стройплощадке 1 и стройплощадке 4 (но вместо шоу: Сотрудник (я) работал (это место) и (это место)

Если оба стройплощадки происходят из одной таблицы в БД

Спасибо за любую помощь вы, ребята/девочки могут дать

+1

Для какой базы данных? –

ответ

1
SELECT js1.jobsite AS customer1, js2.jobsite AS customer2 
FROM timecard tc 
LEFT JOIN 
     jobsite js1 
ON  js1.id = tc.jobsite 
LEFT JOIN 
     jobsite js2 
ON  js2.id = tc.jobsite2 
0

вы спрашиваете что-то вроде этого?

SELECT jobsite.Jobsite as 'Customer', 
FROM timeCard, jobSite 
WHERE timeCard.jobsite = jobsite.id 
OR timeCard.jobsite2 = jobsite.id 

(PS. Поскольку вы упомянули вы новичок в SQL, я хотел бы взять это возможность чтобы убедиться, что вы знаете о параметризованных запросов (статьи на ASP.Net, PHP), который вы должны всегда использовать вместо конкатенации строк)

4

Вы будете нуждаться, чтобы присоединиться к jobsite таблице дважды, потому что один timecard запись связана с двумя разными jobsite записями (при условии, что некоторые сведения о вашей схеме и СУБД ...):

SELECT t.EmployeeName, j1.jobsite AS 'Customer 1', j2.jobsite AS 'Customer 2' 
FROM timecard t 
LEFT JOIN jobsite j1 ON t.jobsite = j1.id 
LEFT JOIN jobsite j2 ON t.jobsite2 = j2.id 
Смежные вопросы