2015-07-24 3 views
0

У меня очень тяжелое время с этим. У меня есть две разные таблицы: «отъезд» и «данные редактора». Я хочу отображать данные из отправления, когда данные в столбце «Название» отправления соответствуют данным в столбце «ven» редактора_данных.Отображать данные из одной таблицы, когда значение столбца в первой таблице соответствует значению столбца во второй таблице

Я пробовал SQL-запрос ниже, но он не работает должным образом.

<?php 

SELECT Time, Location, Name FROM departure JOIN editor_data 
ON departure.Name = editor_data.ven 

    ?> 

например

вылет таблица может иметь либо микрофон или обряд в поле "Name". Итак, если «editor_data» имеет значение «mike» в столбце «ven», тогда он должен отображать только данные, относящиеся к «mike», и исключать данные об обряде.

+0

Ваш присоединиться кажется правильным. Можете ли вы привести пример строки, которую вы получаете в своих результатах, чего вы не ожидаете? –

+0

Имеются ли в обеих таблицах одна запись для каждого имени/места? – FutbolFan

+0

Я получаю все данные независимо от того, где я устанавливаю name = ven. Он должен возвращать только данные, где имя в таблице вылета равно ven в таблице editor_data. –

ответ

0

Выберите только те записи таблицы вылета, где имя существует в editor_data.ven колонки

SELECT Time, Location, Name FROM departure where name in (SELECT ven from editor_data); 

возникает Ваш вопрос, потому что вы пытаетесь соединить две таблицы, основанную на колонке name значения которых не является первичным ключом. Следовательно, условие соединения терпит неудачу и приводит к перекрестному соединению, которое возвращает декартовую комбинацию продуктов всех имеющихся записей. Следовательно, проблему можно избежать, вызвав подзапрос в выбранном (ограниченном) списке значений.

+0

Привет, не работает. Я получаю все данные. Я угадываю некоторые проблемы с предложением where. –

+0

Каковы другие столбцы в таблице editor_data? Может ли значение 'name' присутствовать более одного раза в столбце' ven' таблицы 'editor_data'? – SarathChandra

+0

Имя присутствует только в таблице вылета. –

0

Так это, как я получил это работает

"SELECT Time, Location, Name FROM departure where Name LIKE (SELECT ven from editor_data where tour_id = '$id');" 
Смежные вопросы

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