2016-11-17 2 views
0

Я работаю над поисковым запросом, используя LIKE. Тем не менее, я немного застрял, в основном логичный. У меня есть этот запрос сейчас:Запрос INNER JOIN и SELECT

SELECT * 
FROM adressen 
WHERE CONCAT(adressen.ad_name, adressen.ad_vorname) LIKE 
      '%"+wndHauptfenster.textfield_suche.Text+"%' 

Однако, мне нужно, чтобы получить некоторую информацию из другой таблицы, но только из определенного ID, который может быть использован с adressen.id. Можно ли получить fahrzeugen.kennzeichen с WHERE owner_id = adressen.id?

Я думал о внутреннем соединении, однако я не знаю, как я могу построить там ГДЕ. Это возможно или нет?

Я не нашел ответа, который решил мой вопрос. Между этими таблицами нет никаких отношений. Таблица Adressen содержит столбцы ad_id, ad_name, ad_vorname и ad_adresse. Стол, где ему нужно получить fahrzeugen.kennzeichen, называется fahrzeugen, и содержит идентификатор, owner_id и kennzeichen.

+0

Подсказка: 'JOIN' переходит в предложение' FROM', а не 'WHERE'. –

+0

@Anquaser Предоставить схему таблиц и отношения между таблицами – Viki888

+0

Возможно, подзапрос будет лучшим решением? – starko

ответ

3

Как вы это понимаете?

SELECT * 
FROM adressen AS A 
INNER JOIN fahrzeugen AS F ON F.owner_id = A.id 
WHERE CONCAT(A.ad_name, A.ad_vorname) LIKE 
      '%"+wndHauptfenster.textfield_suche.Text+"%' 
+0

Да, однако, это дает мне результат каждый раз, когда у этого Лица 10 автомобилей, поиск покажет 10 раз результат. Есть ли способ предотвратить это? – Synthiatic

+0

Это зависит от того, чего вы пытаетесь достичь, но вы можете использовать SELECT TOP 1 * – Dom

+0

SELECT TOP 1 * Не собираюсь резать его. К сожалению. Это для Searchbox, который ищет Клиентов, но также и в Numplates, которые подключены к этим Клиентам. Однако, когда у Клиента 20 автомобилей, он показывает этого клиента 20 раз. – Synthiatic

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