Table des matières
回复讨论(解决方案)
Maison développement back-end tutoriel php 问一个联合查询的语句

问一个联合查询的语句

Jun 23, 2016 pm 02:19 PM



如上图所示数据表
怎么读出A中的数据呢?(同时也要读出B中对应的数据)


回复讨论(解决方案)

select * from `a` ,`b`  where  `a`.`bid` like concat('%',`b`.`bid`,'%')

如果要查a表id等于1对应的关联数据,可以写成
select * from `a` ,`b`  where `a`.`id`='1' and `a`.`bid` like concat('%',`b`.`bid`,'%')

是要查a表,结果应该类似这样:

Object{  [id] => 1  [bid] => Object  {     [1] => Object     {        id => 1        content => 'BBBBB'     }     [2] => Object     {        id => 5        content => 'BBBBB'     }     [3] => Object     {        id => 2        content => 'BBBBB'     }  }  conent => 'AAAAA'}
Copier après la connexion

类似的php伪代码应该是:

foreach ($tablea->result as $a){	echo $a->id	foreach ($a->bid as $b)	{		echo $b.id;		echo $b.content;	}	echo $a.conent}
Copier après la connexion


打印结果是:

id bid(& b.content) content
------------------------------------
1 1, BBBBBBB AAAAAAAA
1 5, BBBBBBB AAAAAAAA
1 2, BBBBBBB AAAAAAAA
2 2, BBBBBBB AAAAAAAA
2 4, BBBBBBB AAAAAAAA

你要做成这种结果,用程序很容易实现的,上面的SQL其实一定上现实了你的功能

select * from `a` ,`b` where `a`.`bid` like concat('%',`b`.`bid`,'%')

如果要查a表id等于1对应的关联数据,可以写成
select * from `a` ,`b` where `a`.`id`='1' and `a`.`bid` like concat('%',`b`.`bid`,'%')

这是是不是先读b表中的id,然后再模糊查询a表中的bid?

select * from `a` ,`b`  where  `a`.`bid` like concat('%',`b`.`bid`,'%')
Copier après la connexion

恩,先关联AB表,然后模糊查询a表中的bid是不是在a表的bid中

这样会根据b表的id递增的顺序排序
而不是原先a表中bid逗号字符串的顺序:1,5,2??应该是1-5-2的顺序

建议贴出以下语句以便人家测试
create table ....;

insert into table.... ; 语句

select a.id, b.id as bid, a.content, b.content as bcontent from A表 a, B表 b where find_in_set(b.id, a.bid) order by a.id
Copier après la connexion
Copier après la connexion

select a.id, b.id as bid, a.content, b.content as bcontent from A表 a, B表 b where find_in_set(b.id, a.bid) order by a.id
Copier après la connexion
Copier après la connexion


谢谢版主!
find_in_set(b.id, a.bid)好像只能查询到第一条,比如上面的数据表中a.bid是1,5,2,结果只显示b.id=1的那一条!b.id=5, b.id=2的那几条都没查询出来!

你在表B加个冗余字段A_id多好。

CREATE TEMPORARY TABLE a (id int, bid varchar(10), content varchar(10));INSERT INTO a VALUES('1','1,5,2','AAAAAAA');INSERT INTO a VALUES('2','2,4','AAAAAAA');INSERT INTO a VALUES('3','1,3,2','AAAAAAA');CREATE TEMPORARY TABLE b (bid int, content varchar(10));INSERT INTO b VALUES('1','BBBBB');INSERT INTO b VALUES('2','BBBBB');INSERT INTO b VALUES('3','BBBBB');INSERT INTO b VALUES('4','BBBBB');INSERT INTO b VALUES('5','BBBBB');select a.id, b.bid as bid, a.content, b.content as bcontent from a, b where find_in_set(b.bid, a.bid) order by a.id
Copier après la connexion

原来是我的“1, 5, 2”逗号后面有空格!就没法全查询出来了!空格去掉就ok了

另外,这个find_in_set的查询结果没法按照1-5-2的原始顺序排列!只能按1-2-5递增或5-2-1递减的次序排列啊?

唠叨老大用了另一种更有效率的写法,不过我那些其实也可以得出一样的结果的!
select * from `a` ,`b`  where  `a`.`bid` like concat('%',`b`.`bid`,'%') order by id

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
2 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Repo: Comment relancer ses coéquipiers
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Comment obtenir des graines géantes
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Combien de temps faut-il pour battre Split Fiction?
3 Il y a quelques semaines By DDD

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

11 meilleurs scripts de raccourcissement d'URL PHP (gratuit et premium) 11 meilleurs scripts de raccourcissement d'URL PHP (gratuit et premium) Mar 03, 2025 am 10:49 AM

Les longues URL, souvent encombrées de mots clés et de paramètres de suivi, peuvent dissuader les visiteurs. Un script de raccourcissement d'URL offre une solution, créant des liens concis idéaux pour les médias sociaux et d'autres plateformes. Ces scripts sont utiles pour les sites Web individuels

Introduction à l'API Instagram Introduction à l'API Instagram Mar 02, 2025 am 09:32 AM

À la suite de son acquisition de haut niveau par Facebook en 2012, Instagram a adopté deux ensembles d'API pour une utilisation tierce. Ce sont l'API graphique Instagram et l'API d'affichage de base Instagram. En tant que développeur créant une application qui nécessite des informations à partir d'un

Travailler avec les données de session Flash dans Laravel Travailler avec les données de session Flash dans Laravel Mar 12, 2025 pm 05:08 PM

Laravel simplifie la gestion des données de session temporaires à l'aide de ses méthodes de flash intuitives. Ceci est parfait pour afficher de brefs messages, alertes ou notifications dans votre application. Les données ne persistent que pour la demande ultérieure par défaut: $ demande-

Construisez une application React avec un Laravel Back End: Partie 2, React Construisez une application React avec un Laravel Back End: Partie 2, React Mar 04, 2025 am 09:33 AM

Il s'agit de la deuxième et dernière partie de la série sur la construction d'une application React avec un back-end Laravel. Dans la première partie de la série, nous avons créé une API RESTful utilisant Laravel pour une application de liste de base sur le produit. Dans ce tutoriel, nous serons Dev

Misque de réponse HTTP simplifié dans les tests Laravel Misque de réponse HTTP simplifié dans les tests Laravel Mar 12, 2025 pm 05:09 PM

Laravel fournit une syntaxe de simulation de réponse HTTP concise, simplifiant les tests d'interaction HTTP. Cette approche réduit considérablement la redondance du code tout en rendant votre simulation de test plus intuitive. L'implémentation de base fournit une variété de raccourcis de type de réponse: Utiliser illuminate \ support \ faades \ http; Http :: faux ([[ 'google.com' => 'Hello World', 'github.com' => ['foo' => 'bar'], 'forge.laravel.com' =>

Curl dans PHP: Comment utiliser l'extension PHP Curl dans les API REST Curl dans PHP: Comment utiliser l'extension PHP Curl dans les API REST Mar 14, 2025 am 11:42 AM

L'extension PHP Client URL (CURL) est un outil puissant pour les développeurs, permettant une interaction transparente avec des serveurs distants et des API REST. En tirant parti de Libcurl, une bibliothèque de transfert de fichiers multi-protocol très respectée, PHP Curl facilite Efficient Execu

12 meilleurs scripts de chat PHP sur Codecanyon 12 meilleurs scripts de chat PHP sur Codecanyon Mar 13, 2025 pm 12:08 PM

Voulez-vous fournir des solutions instantanées en temps réel aux problèmes les plus pressants de vos clients? Le chat en direct vous permet d'avoir des conversations en temps réel avec les clients et de résoudre leurs problèmes instantanément. Il vous permet de fournir un service plus rapide à votre personnalité

Annonce de l'enquête sur la situation en 2025 PHP Annonce de l'enquête sur la situation en 2025 PHP Mar 03, 2025 pm 04:20 PM

L'enquête sur le paysage PHP 2025 étudie les tendances actuelles de développement du PHP. Il explore l'utilisation du cadre, les méthodes de déploiement et les défis, visant à fournir des informations aux développeurs et aux entreprises. L'enquête prévoit la croissance de la PHP moderne versio

See all articles