简体   繁体   English

mysql连接表限制特定表

[英]mysql join tables limit specific table

I've created this SQL query in order to connect key variables and extract info from a database. 我创建此SQL查询是为了连接关键变量并从数据库中提取信息。

Firstly I used this: 首先,我使用了这个:

SELECT * 
FROM `users` a,`field_data_field_ypefthinos` b, `field_data_field_branch_chain` c, `field_data_field_taxonomy_etairia` d, `node_revision` e
WHERE a.uid = b.field_ypefthinos_uid
AND a.uid = 1
AND b.entity_id = c.entity_id
AND d.field_taxonomy_etairia_tid = c.field_branch_chain_tid
AND d.bundle = 'kouponia'
AND d.entity_id = e.nid

and then I converted it to this in order to be able to use stmt bind_result function 然后我将其转换为此,以便能够使用stmt bind_result函数

SELECT
users.uid, 
field_data_field_ypefthinos.field_ypefthinos_uid, 
field_data_field_ypefthinos.entity_id,
field_data_field_branch_chain.entity_id,
field_data_field_taxonomy_etairia.field_taxonomy_etairia_tid,
field_data_field_taxonomy_etairia.bundle,
field_data_field_taxonomy_etairia.entity_id,
node_revision.nid
FROM `users`,`field_data_field_ypefthinos`, `field_data_field_branch_chain`, `field_data_field_taxonomy_etairia`, `node_revision`
WHERE users.uid = field_data_field_ypefthinos.field_ypefthinos_uid
AND users.uid = 1
AND field_data_field_ypefthinos.entity_id = field_data_field_branch_chain.entity_id
AND field_data_field_taxonomy_etairia.field_taxonomy_etairia_tid = field_data_field_branch_chain.field_branch_chain_tid
AND field_data_field_taxonomy_etairia.bundle = 'kouponia'
AND field_data_field_taxonomy_etairia.entity_id = node_revision.nid

What I'd like to do next is to: 我接下来要做的是:

1) use table/fields aliases in order for the code to be easier maintained as I do in the first code. 1)使用表/字段别名,以便像我在第一个代码中一样容易维护代码。

2) Important: be able to limit the results from table field_data_field_ypefthinos to LIMIT 1. 2)重要提示:能够将表field_data_field_ypefthinos的结果限制为LIMIT 1。

My goal is to have a code like this: 我的目标是拥有这样的代码:

SELECT a.uid, b.field_ypefthinos_uid, b.entity_id, c.entity_id, d.field_taxonomy_etairia_tid, c.field_branch_chain_tid, d.bundle, d.entity_id
FROM `users` a,`field_data_field_ypefthinos` b LIMIT 1, `field_data_field_branch_chain` c, `field_data_field_taxonomy_etairia` d, `node_revision` e
WHERE a.uid = b.field_ypefthinos_uid
AND a.uid = 1
AND b.entity_id = c.entity_id
AND d.field_taxonomy_etairia_tid = c.field_branch_chain_tid
AND d.bundle = 'kouponia'
AND d.entity_id = e.nid

DISTINCT did the job, the solution: DISTINCT做了工作,解决方案:

SELECT DISTINCT e.title
FROM `users` a,`field_data_field_ypefthinos` b, `field_data_field_branch_chain` c, `field_data_field_taxonomy_etairia` d, `node_revision` e
WHERE a.uid = b.field_ypefthinos_uid
AND a.uid = 1
AND b.entity_id = c.entity_id
AND d.field_taxonomy_etairia_tid = c.field_branch_chain_tid
AND d.bundle = 'kouponia'
AND d.entity_id = e.nid

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM